路漫漫其修远兮, 吾将上下而求索
题记
南柯一梦,回望2012已经有12年了,曾经那个踟蹰的少年现在安在?
遇到的问题
1. IBOutlet未nil的现象
写代码,发现在通过loadNibNamed创建一个ViewController后,调用其IBOutlet的property时竟然是nil
查看调用实际,很有可能IB还未绑定到View你提前调用了,请把调用时机放到ViewDidLoad之后吧。
2. swift中的open、public、internal、private、fileprivate的范围
访问控制修饰符 作用范围 open 模块外可访问,并且可以在其他模块中继承或重写(仅适用于类和类成员) public 模块外可访问,但不能在其他模块中继承或重写(除非被标记为 open) internal 当前模块内可访问(默认) fileprivate 同一源文件内可访问 private 声明它的实体内可访问
3. 声明参数由协议约束
单个协议约束
protocol CanSee { func doSomeThing() }
func myFunction(_ do: CanSee) {}
泛型约束
protocol ProtocolA { func doA() {} }
protocol ProtocolB { func doB() {} }
func myFunction<T: ProtocolA>(_ do: T) {}
// 多个协议
func myFunction<T>(_ do: T) where T: ProtocolA, T: ProtocolB {}
多协议继承
func myFunction(_ do: ProtocolA & ProtocolB) {}
iOS 新建项目 pod 报错 Sandbox:rsync.sanba deny
Xcode15新建项目并且引入pod库后,编译报错 Sandbox:rsync.sanba deny(1) file-write-create xxx 发现不管是那个第三方库pod 都会失败,没有pod 可以成功,所以网上找个有pod库的代码,配置选项发现 对比,发现 build setting 里面有个选项 Build Options-- User Script Sandboxing 改为NO
后记
本文是一个记述型文档,陆续会把遇到的问题更新上来.