Swift-er SDK:简述OC的Nullability Annotations特性
来源:互联网 发布:赛迪斯杨数据 编辑:程序博客网 时间:2024/05/20 10:53
本文由CocoaChina译者 远的风景 翻译自苹果开发者中心
原文:Swift-er SDK
苹果在Xcode 6.3中为Objective-C添加了一项新特性--Nullability Annotations,该特性为Objective-C提供了表达null和non-null API的方法,类似于Swift编程语言中的Optional类型。
通过为Objective-C引入轻量级的泛型模式,Xcode 7继续致力于让Objective-C和Swift之间的通信变得更加自然。泛型使得Objective-C和Swift之间更加安全地理解和共享包含特定类型元素的集合。
这项功能对使用Swift和Objective-C混编的APP非常有用,但是开发者每天还是使用Objective-C代码更多一点:Objective-C中的框架构成了Apple SDK。为了改善Swift和Objective-C的使用体验,我们进行了全公司范围内的努力,在SDK的头文件中都提供了这样的信息。在Xcode 7中,你会发现几乎所有常见框架现在都指定了API Nullability注释,以及其集合类型的元素。这样Swift代码界面就发生了变化:
由
class UIView : UIResponder {
init!(frame: CGRect)
var
superview: UIView! { get }
var
subviews: [AnyObject]! { get }
var
window: UIWindow! { get }
// ...
func isDescendantOfView(view: UIView!) -> Bool
func viewWithTag(tag: Int) -> UIView!
// ...
var
constraints: [AnyObject]! { get }
// ...
}
更改为
class UIView : UIResponder {
init(frame: CGRect)
var
superview: UIView? { get }
var
subviews: [UIView] { get }
var
window: UIWindow? { get }
// ...
func isDescendantOfView(view: UIView) -> Bool
func viewWithTag(tag: Int) -> UIView?
// ...
var
constraints: [NSLayoutConstraint] { get }
// ...
}
最后一个重点是Xcode 7中将代码转换成Swift 2的工具。该工具位于在Xcode的Edit菜单下--Convert > To Latest Swift Syntax。通过必要的编辑操作,该工具可将一个使用Swift 1.2编写的项目转换成符合Swift 2.0规则的代码。这些改变源自于改进后的头文件信息。比如,如果你重载一个参数和结果类型更加准确的方法,那么migrator将会在转换的过程中更新方法以便与之进行匹配。
苹果对Objective-C的改善和提升已经在WWDC上详细说明了,可参看视频14:30处Swift and Objective-C Interoperability这一节,不过视频中使用的是Xcode 6.3 __nullable语法,而不是Xcode 7的_Nullable语法。关于Nullability Annotations的更多信息,请查看Nullability and Objective-C这篇文章。更多关于Swift 2 and Objective-C轻量级泛型的内容,请参看Xcode 7 Release Notes。
- Swift-er SDK:简述OC的Nullability Annotations特性
- Swift iOS中的Nullability Annotations
- 会报编译器警告的Xcode 6.3新特性:Nullability Annotations
- 会报编译器警告的Xcode 6.3新特性:Nullability Annotations
- 会报编译器警告的Xcode 6.3新特性:Nullability Annotations
- 会报编译器警告的Xcode 6.3新特性:Nullability Annotations
- Xcode 6.3新特性:Nullability Annotations
- Nullability Annotations
- Nullability Annotations
- Nullability Annotations
- Nullability Annotations 为空性的注释
- 编译器警告Nullability Annotations
- null/nil以及Nullability Annotations
- __nonnull or __nullable or Nullability Annotations
- swift与oc的互用--使用oc特性编写swift
- swift与oc的互用--Mix and Match特性
- Swift Nullability and Objective-C
- swift-01-简述swift与OC区别
- javascript逻辑运算符“||”和“&&”
- Android之弹出菜单框【注册上下文菜单】
- zoj 1671 Walking Ant
- Record Your Rationale
- Linux优良特性3
- Swift-er SDK:简述OC的Nullability Annotations特性
- Challenge Assumptions— Especially Your Own
- <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale
- Beat the Spread!
- 存储器层次结构
- Share Your Knowledge and Experiences
- Android之弹出多级菜单
- quagga实现 isis路由(1)
- 九度oj-1109-连通图