Swift 我遇见的一些坑

来源:互联网 发布:淘宝大尺度店铺 编辑:程序博客网 时间:2024/04/29 17:44

好吧,用了下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! 就好了。

1 0