本文主要是介绍Swift 我遇见的一些坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
好吧,用了下storyboard ,果然是一级棒,好好用,最新的xcode 8.2更加智能了
好的,废话不说了,分享点心得
- UICollectionViewController 创建成功会在viewDidLoad()里面加上这么一句话
self.collectionView!.register(UICollectionViewController.self, forCellWithReuseIdentifier: reuseIdentifier)
很好理解的,创建的就是UICollectionViewController,它在自己的初始化会载入cell的类型,于是我就写写写,用自定义的cell。问题来了,报错了,这么改
self.collectionView!.register(SomeCollectionViewController.self, forCellWithReuseIdentifier: reuseIdentifier)
就是将其类型换的和下面一致就好了,类型这个有点吹毛求疵
e…发现加上这句会报一个这样的错,
fatal error: unexpectedly found nil while unwrapping an Optional value
妈哒,程序是走了,我把报错这句删了就好了,但是我得显示东西啊,我就把上面那句初始类型删了,然后就不报错了。。。
保险还是删了吧,这个求解释呢。
- 还有一个是 对一个为空的optional值进行解包. http://blog.csdn.net/soindy/article/details/46786345,用之前得判断一下
- (⊙v⊙)嗯,在Swift里面,我发现有好多官方方法后面多了个thows,这就是异常抛出呀,用的时候得加try http://www.jianshu.com/p/21dce915d552 里面说的很详细的
- 有些方法需要特定的类型,就像对照片进行操作的时候,添加删除啦什么的,下面是在
PHAssetCollectionChangeRequest里面找到的方法。
- (void)addAssets:(id<NSFastEnumeration>)assets;
- (void)insertAssets:(id<NSFastEnumeration>)assets atIndexes:(NSIndexSet *)indexes;
- (void)removeAssets:(id<NSFastEnumeration>)assets;
用的时候,传参还是像之前那样子,传个数组进去,结果就报错了,类型不匹配,这个NSFastEnumeration是快速枚举类型,是为了方便用for in 这个方法的。那我是不是可以理解成为,一个数组想要for each 就得加上这个类型NSFastEnumeration,解决的时候就是as! 就好了。
这篇关于Swift 我遇见的一些坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!