//原生的Swift protocol里没有可选项,所有定义的方法都是必须实现的。如果我们想要像Objective-C里那样定义可选的接口方法,就需要将接口本身定义为Objective-C的,也即在protocol定义之前加上@objc。另外和Objective-C中的@optional不同,我们使用没有@符号的关键字optional来定义可选方法
Swift中要使用协议optional,必须要在协议前面加上@objc ,并且在方法前面加上@objc optional 才能实现协议的方法可选,Swift中的表情也可以当作字符输出
let catCharacters: [Character] = ["🐱", "🐱", "🐱", "🐱", "🐱"] 表示数组里面保存的字符
let catString = String(catCharacters)
print(catString.count)
//swift中的错误处理 ,Objective-C没有原生的异常处理机制。后来通过添加NSException类,还有 NS_DURING, NS_HANDLER和 NS_ENDHANDLER宏才有了异常处理。这种方案现在被称为“经典的异常处理”,还有这些宏都是基于setjmp()和longjmp()这两个C语言函数的。