随笔分类 - OC
the second programing language I had used.
摘要:1、背景: Xcode Version 12.2 beta (12B5018i) 新建好的Xcode swift项目,运行的好好地,由于我要手动导入SnapKit.导入失败,工程无法构建了。折腾了半天工程配置那个地方已经失败了,我又找不到问题出在哪里。 把SnapKit去掉之后,又重新配置,buil
阅读全文
摘要:软件设计的7条原则 1、开闭原则 软件实体应该对扩展开放,对修改关闭。 对扩展开放可以使得软件拥有一定的灵活性,同时对修改关闭可以保证软件的稳定性。 (勃兰特·梅耶于1988年在《面向对象软件设计》中提出) 2、里氏替换原则 继承必须保证超类所拥有的性质在子类中依然成立 遵守里氏替换原则在对父类继承
阅读全文
摘要:1、GCD提供了一种信号量机制,我们可以用它来做线程的同步控制。 信号量的工作机制: 信号量支持“信号通知”和“等待”两个操作,初始化时会给信号量一个初始整形值,他代表线程可以访问的资源数。信号量被通知,值加一,当一个线程被信号量控制为等待,线程会被阻塞,直到信号量计数值大于0,然后线程会减少这个计
阅读全文
摘要:1、背景 由于传统已知的三种方法获取uuid都不能保证它唯一不变,那么我们可以利用钥匙串服务,来生成并存储一个唯一不变的字符,作为唯一的设备id. /** 利用CFUUIDCreateString函数生产UUID, 卸载应用重新安装后会不一致*/ + (NSString *)getUUID{ CFU
阅读全文
摘要:Clang frontend command failed with exit code 70 (use -v to see invocation)
阅读全文
摘要:背景: 生产上爆出一个问题,iOS14用户某个跳转按钮没有反应。其他系统用户没有这个问题。 苹果在9月17号正式推送了iOS14. 2020,9月17号我们的APP升级OK 。用户未没有抱怨出问题。 在23号的时候,还未爆出问题。24号,已经有人反馈了。 我还没有升级MAC系统,也没有Xcode12
阅读全文
摘要:1、参与编译的.m文件重复导入。一般是手动往工程中导入源文件时导入在了不同的目录。 解决方法也很简单,在 Target → build parses → complie sources,去掉重复的文件即可。 2、导入头文件时,误写为导入.m 文件 即 #import xxx.h 写成了 #impor
阅读全文
摘要:1、认识NSString中==、- (BOOL)isEqual:(id)object;,- (NSInteger)hash;, - (BOOL)isEqualToString:(NSString *)otherString;一个运算符和三个函数。 1、== 是比较两个指针本身是否相同,而不是指针所指
阅读全文
摘要:1、直接使用实例变量(_varName)比通过点语法(self.varName)有更快的访问速度 2、直接访问实例变量,不会调用设置方法,绕过了相关属性所定义的内存管理语义 3、直接访问实例变量,不会触发【键值观察】(Key-Vaule Observinig,KVO)通知。 4、通过属性来访问有助于
阅读全文
摘要:iPhone的设备类型越来越多, iPhone各代设备一览: 设备名 设备标识 分辨率 屏幕尺寸 屏幕模式 上市时间 iPhone初号机 iPhone1,1 320*480 3.5(inch) 1x 2007-5-29 iPhone 3 iPhone1,2 320*480 3.5(inch) 1x
阅读全文
摘要:我们通过代码来说明: 看看打印结果 倘若我们把不可变字典的属性关键字声明为strong: 所以综上,由于NSDictionry有对应的可变类型,NSMuableDictionry,并且NSMutableDictonry可以赋值给NSDictionry ,代码里有先拿可变字典给不可变字典赋值,然后修改
阅读全文
摘要:原理 scrollView的高度(纵向滑动时)时靠内部的子控件撑起来的。我们直接给ScrollView布局会发现失败。用层级检查器发现,ScrollVIiw的高度有问题,我们可以选择添加一个UIView容器,约束容器的edge.equalTo(self.scrollView),和 container
阅读全文
摘要:假如有一对按钮【重置】【提交】,要让他们的默认UI和点击的UI表现刚好相反 【提交】按钮,默认橙色,点击边框是橙色,字体是橙色,背景变白色 【重置】按钮,默认白色橙色,边框是橙色,点击字体是白色,背景变橙色 UIImage的一个分类方法
阅读全文
摘要:1、在一个二级导航控制器中添加一个UITableviewController作为子控制器 2、UITableviewController.tableView 作为展示结果 3、利用iOS之后的UISearchController 根据输入更新输入结果 遇到的问题: 模拟器无法中文输入, 解决方法:
阅读全文
摘要:AppDelegete.m 中把tabBarController设置为 window的根控制器。
阅读全文
摘要:YYModel源码中有一句:kCFNull nil: define the id of a null instance, 指向一个(实例)对象的空指针 如:NSString *str = nil; NSDate *date = nil; Nil:defines the id of a null cl
阅读全文
摘要:iTunes 12.6之前的版本,我们手机连上MAC之后,可以在iTunes里看到应用选项,但是12.8之后的版本就不行了。无法通过iTunes 获取ipa文件进而获取APP图片资源。 不过还是有其他方法的。 1、先下载安装PP助手 https://pro.25pp.com/pp_mac_ios 2
阅读全文
摘要:FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。同时,FFmpeg是一套跨平台的方案,所以我们可以在iOS开发中使用它来进行一些视频与GIF的开发。 接下来,我们从编译FFmpeg开始,到使用FFmpeg,再到使用
阅读全文
摘要:之前的一篇文章 https://www.cnblogs.com/wjw-blog/p/7189730.html,按照流程能搭建好git仓库,有时候会有一些小问题。 按照这个流程:-在github 上新建一个仓库 -勾选 初始化 README.md文件 -ok, 生成 git仓库地址:http://u
阅读全文