mytextField.editing 是只读属性了 3.0
对于Swift中的强制类型转换,从AnyObject转换为更特殊的对象类型并不会保证成功,所以它会返回一个可选值。而你需通过检查该值的类型来确认转换是否成功。
当然,如果你能确定这个对象的类型(并且确定不是nil),你可以添加as操作符强制调用。
对象比较(Object comparison)
如果你在Swift比较二个对象,那么会有二种不同的类型的比价。第一个equality相等(==)用于比较对象的内容,第二个identity恒等(===)用以决定常量或者变量是否引用同一个对象实例。在swift中比较Swift和Objective-c对象使用==和===运算符。
为了避免循环引用,不要将swift代码导入到Objective-C头文件中。但是那你可以在Objective-C头文件中前向声明一个swift来使用它,然而,注意不能再Objective-C中继承一个swift类。
Product Module命名
Xcode 为 Swift 代码生成的头文件的名称,以及 Xcode 创建的 Objc 桥接头文件名称,都是从你的 product 模块名生成的。默认你的 product 模块名和 product 名一样。然而,如果你的 product 名有特殊字符(nonalphanumeric,非数字、字母的字符),例如点号,那么它们会被下划线( _ )替换之后作为你的 product 模块名。如果 product 名以数字开头,那么第一个数字会用下划线替换掉。
你可以给 product 模块名提供一个自定义的名称,Xcode 会用这个名称来命名桥接的和自动生成的头文件。你只需要在修改在 build setting 中的 Product Module Name 即可。