Xcode插件的实现-JSON格式化
发表于|更新于
|浏览量:
背景:开发中经常遇到需要格式化JSON字符串的情况,每次都是百度在线格式化解析好不方便,某天看到APP Store里有Xcode关于这个的插件,卖的老贵了,哈哈哈,于是就想自己也弄一个,先调研一下JSON格式化的实现原理,然后再看看Xcode插件的实现,最后还可以写个Mac版,给自己大大的赞😄
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2023-02-22
CABasicAnimation进入二级界面再回来不生效
背景发现之前同事写的某个界面有个动效, 起初进入的时候是生效的, 进入二级界面再返回动效就没了, 动画用的是CABasicAnimation, 添加在 layer 上面. 解决看代码没有问题, 毕竟第一次就生效了, 以为是在页面消失时做了什么操作, 查了之后发现, 页面消失时并没有操作. 再回过来看代码, 代码动画部分是在didMoveToWindow中实现的, 大致如下: didMoveToWindow方法在页面消失和出现的时候都会调用, 难道是添加多次导致不生效了, 改成只添加一次之后发现效果一样, 进入二级页面再返回就不生效了. 1234567891011override func didMoveToWindow() { layer.addSublayer(gradientLayer) let basicAnim = CABasicAnimation(keyPath: "animateLocation") basicAnim.fromValue = [xxx] basicAnim.toValue = [xx...
2024-03-13
Xcode 15.3 Archive失败
Xcode 15.3 Archive失败背景昨晚升级 Xcode 到 15.3,今天打包的时候发现 Archive 失败,提示:Call parameter type does not match function signature!,仔细看报错里是和HandyJSON相关的提示。 解决起初以为和 Pod 库有关系,但是找同事确认后,发现低于 Xcode 15.3 的版本是可以打包成功的,但是 Xcode 15.3 的版本就报错了。然后搜索HandyJSON Call parameter type does not match function signature!,发现了这个,Building HandyJSON in Swift 5.10 throws a fatal error ,是Swift 5.10 编译 HandyJSON报错了。目前HandyJSON官方还未解决。 暂时的解决方法是: 在 Pod 的 Target 中找到 HandyJSON, 然后设置Optimization Level为 None和No Optimization,如下图: 然后再次尝试 A...
2016-01-07
lib(a)导致的duplicate-symbol的问题
lib(a)导致的duplicate-symbol的问题链接: iOS lib(.a)库冲突解决办法 iOS 两个静态库存在同名文件冲突解决方案 说明 首先你要确定是这个类型的错误 然后开始,可以按照第一个链接进行修改,也可以看下面 在引入第三方lib(.a)库时,经常会由于第三方lib库中又引入同你现有工程相同的开源代码而造成.o冲突 依次查看lib库所支持的框架类型。i386:模拟器;armv7:iphone4;armv7s:iphone5,iphone5s;arm64:iphone6,iphone6p。 首先,将冲突的那个.a文件单独拷贝到一个文件夹,然后用命令行进入到那个文件夹 查看lib库支持的框架类型,注意下面的lib.a或者libRyFitLibrary.a是我出错的.a文件 12admin-imac:testlib admin$ lipo -info lib.a 2 Architectures in the fat file: lib.a are: armv7armv7s arm64 3 admin-imac:testlib admin$ fa...
2023-11-22
集成腾讯短视频SDK记录
集成腾讯短视频SDK记录有需求是录制一段视频并上传,服务端可见。最后才用集成腾讯SDK的方式,走了一些弯路,这里记录一下。 SDK 选择首先是SDK选择,对于iOS来说是腾讯的短视频SDK SDK集成然后是,SDK集成,按照上面链接步骤,把TXLiteAVSDK_UGC.framework和依赖的系统库集成到项目中,然后添加plist权限,再添加UGCKit模块,发现编译失败。对于我的项目来说,是因为 WCDB 库冲突,项目中使用的私有库封装了 WCDB,使用的是静态库的方式。和上面 SDK中冲突了,所以需要单独设置。修改了好久,编译通过之后,运行后发现,WCDB 初始化失败,又排查了好久,最终解决方法是: 在 Build Settings 中的 Other Linker Flags,设置: 12-force_load"${PODS_CONFIGURATION_BUILD_DIR}/WCDBOptimizedSQLCipher/libWCDBOptimizedSQLCipher.a" 如下: 然后是,发现按照上面步骤集成后,安装包大...
2022-04-21
Algorithem_Merge Two Binary Trees
Algorithem_Merge Two Binary TreesYou are given two binary trees root1 and root2. Imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge the two trees into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of the new tree. Return the merged tree. Note: The merging process must...
2019-09-28
Mapping architecture armv7 to i386
最近项目里升级后,编译警告多了起来,看起来好碍眼,就想着改掉,先从Debug warning: Mapping architecture armv7 to i386.这个开始。 看了警告之后,知道是对应target下的Build Settings里architecture的问题,然后去检查对应target下,发现today widget、iwatch widget里Valid Architectures的Release跟Debug不一致,然后就手动修改为 $(ARCHS_STANDARD),编译,done,完美解决。
公告
This is my Blog