Xcode插件的实现-JSON格式化
发表于|更新于
|浏览量:
背景:开发中经常遇到需要格式化JSON字符串的情况,每次都是百度在线格式化解析好不方便,某天看到APP Store里有Xcode关于这个的插件,卖的老贵了,哈哈哈,于是就想自己也弄一个,先调研一下JSON格式化的实现原理,然后再看看Xcode插件的实现,最后还可以写个Mac版,给自己大大的赞😄
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2022-10-11
Xcode14编译的APP低版本崩溃
背景测试说iOS 12的手机上安装Xcode14.0.2导出的新包后,打开就崩溃,但是在系统版本高的手机上就没有问题。 调试后发现,崩溃日志是dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib,具体如下: dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib Referenced from: /private/var/containers/Bundle/Application/55730273-D9D6-4C42-9335-7A56F92B7F2C/xxx.app/Frameworks/FSPagerView.framework/FSPagerView Reason: image not founds 搜索后发现,开发者社区中有此问题的记录,xcode14:Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib,解决方案是: If yo...
2022-04-15
Algorithem_TwoPointers
Algorithem_TwoPointersTwo Sum II - Input Array Is SortedGiven a 1-indexed array of integers numbers that is already sorted in non-decreasing order, find two numbers such that they add up to a specific target number. Let these two numbers be numbers[index1] and numbers[index2] where 1 <= index1 < index2 <= numbers.length. Return the indices of the two numbers, index1 and index2, added by one as an integer array [index1, index2] of length 2. The tests are generated such that there is e...
2022-09-14
Xcode14编译失败修改
背景升级Xcode 14后,项目编译失败修改,共修改了两种编译错误: 一种是bundle code sign error,Xcode 14 needs selected Development Team for Pod Bundles 一种是Module compiled with Swift 5.6.1 cannot be imported by the Swift 5.7 compiler 其中第一种比较容易解决,第二种稍微麻烦点,解决方案如下: 解决Xcode 14 bundle code sign error这个的解决方案,直接Google,第一个stackoverflow的链接是Xcode 14 needs selected Development Team for Pod Bundles,这里面给出的解决方法是,在Podfile里增加下面代码,然后运行Pod install,设置Pod库的DEVELOPMENT_TEAM是开发者账号的team。 笔者有两个项目,其中一个是Swift为主,用下面的设置方法试了,可以解决。要注意的是如果项目有多个target,ta...
2022-08-26
一次诡异的录音崩溃排查
背景上午突然有用户反馈,使用录音功能崩溃。起初以为是最近更新的APP新版本有问题,赶紧去排查。 排查首先在测试手机上,测试环境调试,发现并没有崩溃,长出了一口气,说明不是所有用户都有,不是新版本改出来的问题。 然后去听云后台看日志,发现崩溃的地方是初始化AVAudioRecorder的方法——[[AVAudioRecorder alloc] initWithURL:url settings:recordSettings error:&error];。很费解,只是简单的初始化方法,为什么会导致崩溃呢? 一开始猜测会不会是用户录音权限没开,导致开始录音的时候崩溃。尝试后发现如果权限关闭,在进入录音页面前就会提示权限未开启,去开启权限,并不能进入到录音步骤。 然后怀疑会不会是初始化的url为空,又或者机型不支持设置recordSettings中的某些参数?搜索后,发现有url为空崩溃的条目,所以这里大概率也是初始化的url为空。 继续排查,发现初始化的url,是本地的缓存文件夹中Audio文件夹,并且文件名字是取日期+时分秒用于避免重复,格式为yyyyMMdd_HHmmss...
2023-03-23
Safari中使用NewBing
NewBing 的权限已经有了,但是想在 Safari 中使用 NewBing,因为不想日常开三个浏览器,Safari、Chrome、Edge,电脑内存不允许。。。 首先说步骤: Safari 安装 Microsoft Bing for Safari插件,并登录,能使用NewBing的账号 修改 Safari 的 UserAgent 为 Edge 的 UserAgent 修改默认搜索引擎为Bing 第一步很简单,就打开商店搜索安装即可,安装完成后,打开 bing并登录有NewBing权限的账号; 麻烦的是第二步,网上搜索到大部分是,打开Safari -> Develop -> User Agent -> Microsoft Edge,如下图: 但是这种方法只能在当前Tab页生效,打开新的页面后,就失败了,每个新 Tab 都单独设置一次,想想就不可能。所以有没有一种可以永久设置Safari的 UserAgent的方法? 当然有了,设置方法如下,设置之后,每次打开新的页面,UserAgent也会一直保持; 永久设置 Safari 的 UserAgent 1d...
2021-12-27
iOS SDK 不支持模拟器解决办法
背景iOS 第三方 SDK 不支持模拟器,报错提示: building for ios simulator, but the linked framework ‘’xxx(比如: IDLFaceSDK.framework)” was built for ios 解决办法.。 解决办法首先,在Target -> BuildSettings -> Excluded Source FileNames -> Debug 中添加一行,注意,key选择 Any iOS Simulator SDK,value 中添加报错中提示的 SDK的目录,示例如下: 然后,在项目中,引用对应 SDK 头文件,以及使用 SDK 方法的地方添加如下代码判断 1234567891011121314#if !(TARGET_IPHONE_SIMULATOR)#import <xxx/xxx.h>#endif#if !(TARGET_IPHONE_SIMULATOR)[xxx share].yyy = xxx;#endif
公告
This is my Blog