Swift 我遇见的一些坑

2024-05-05 19:48
文章标签 swift 遇见

本文主要是介绍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 我遇见的一些坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962536

相关文章

Swift知识点---RxSwift学习

1. 什么是RxSwift RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护 RxSwift的目的是:让数据/事件流 和 异步任务能够更方便的序列化处理,能够使用Swift进行响应式编程 RxSwift本质上还是观察者模式,并且是一个响应式的,并且可以序列化的 观察者模式 观察者模式包括:KVO、通知等 爸爸妈妈照看观察宝宝 其中,

王立平-- Swift

Swift是供iOS和OS X应用编程的新编程语言,基于C和Objective-C,而却没有C的一些兼容约束。Swift采用了安全的编程模式和添加现代的功能来是的编程更加简单、灵活和有趣。界面则基于广受人民群众爱戴的Cocoa和Cocoa Touch框架,展示了软件开发的新方向。     Swift已经存在了多年。Apple基于已有的编译器、调试器、框架作为其基础架构。通过ARC(Au

Kafka 已落伍,转角遇见 Pulsar!

自 LinkedIn 2011 年创建了 Apache Kafka 后,这款消息系统一度成为大规模消息系统的唯一选择。为什么呢?因为这些消息系统每天需要传递数百万条消息,消息规模确实很庞大(2018 年 Twitter 推文平均每天 500 万条,用户数平均每天为 1 亿)。那时,我们没有 MOM 系统来处理基于大量订阅的流数据能力。所以,很多大牌公司,像 LinkedIn、Yahoo、Twit

The `XXXUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build......

出现的警告: [!] The `ColorInHeartUITests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-ColorInHeart-ColorInHeartUITests/Po

swift快捷键大全

1. 文件 CMD + N: 新文件 CMD + SHIFT + N: 新项目 CMD + O: 打开 CMD + S: 保存 CMD + SHIFT + S: 另存为 CMD + W: 关闭窗口 CMD + SHIFT + W: 关闭文件 2. 编辑 CMD + [: 左缩进 CMD + ]: 右缩进 CMD + CTRL + LEFT: 折叠 CMD + CTRL + RIGHT:

自学Swift之打印输出

所有编程语言都有的函数打印输出: print()         // 不换行输出 println()      // 换行输出       print 和 println 函数可以直接打印基本类型 var num = 10 println("hello " + (String)num)   // 方式1: 其他类型同String输出的时候需要强转 printl

删除文件夹遇见错误0x80070091目录不是空的

用java代码转移文件夹的时候发生了一点错误,导致递归生成了很多文件夹,删除文件夹的时候遇见错误0x80070091目录不是空的 有点恐慌,不会被我搞坏了吧。 一开始以为是权限问题,用命令"rd /s /q xxx"强删也不行。重启电脑再删除还是报这个错误。 搜了一下,看见有说往最后一个文件夹放一个txt文件,再删除就可以了。 用java程序放了一个(代码星火写的) import jav

Swift项目#if DEBUG不生效

在新建的iOS项目中 代码里使用#if DEBUG不生效 解决办法: 在Xcode中给项目添加Debug标识符 点击“Build Setting”搜素Swift Compiler - CustomFlags打开Active Compilation Condition添加Debug标记为“DEBUG”

Swift 3.0 学习 -- 大写和小写字符串(Uppercase and Lowercase Strings)

在swift2.0的时候,您可以通过字符串的uppercaseString和lowercaseString属性来访问大写/小写版本的字符串。如下:

Swift 3.0 学习 -- 计算字符数量 (Counting Characters)

在swift2.0的时候,可以通过调用全局countElements函数,并将字符串作为参数进行传递,可以获取该字符串的字符数量。如下: let unusualMenagerie = "Koala, Snail, Penguin, Dromedary"print("unusualMenagerie has \(countElements(unusualMenagerie)) charact