记录一下初学swift遇到的问题~
项目背景:service-protocol类型的组件化。在组件A中混编加入swift文件。
步骤:target设置SWIFT_VERSION
podfile里添加use_modular_headers!
问题:在Bridging-Header.h里引入了头文件,但是在.swift里还是不能使用
原因:在主工程里才在Bridging-Header.h里引入需要的头文件,在组件中只需要在.swift文件里import头文件
问题:有部分方法没有提示,也无法调用
原因:方法里面带有.swift文件里没有import的参数类型
问题:需要在组件A的 .swift 文件中调用组件B的协议方法,如果组件A依赖的是组件B的 protocol 就 import 不了,如果是依赖的组件就可以 import
原因:swift 里一个 module 必须要有一个实现文件,但是只有协议的.h文件那么没法形成一个 module
解决方案:加一个 协议.m 文件就可以 import 协议了
问题:无法调用 + (instancetype)manager
原因:Xcode 限制了 swift 对 OC 初始化相关方法的调用,+ (instancetype)manager 写法会被忽略。
解决方案:使用 Xcode 认可的关键字 default、singleton、shared 为前缀声明方法名。
问题:
这行代码崩溃了原因:UICollectionView API 设计中不让直接使用 init 方法,因为 collectionView 布局需要 layout 来实现
解决方案
不要直接x()
网友评论