好吧,用了下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://www.jb51.cc/article/p-awfsjirf-bbp.html,用之前得判断一下
- (⊙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! 就好了。