我刚从2015 WWDC示例代码(https://developer.apple.com/sample-code/wwdc/2015/)下载了FourInARow,并注意到文件中有一个奇怪的属性声明AAPLViewController.m
@property NSArray<NSMutableArray<CAShapeLayer *> *> *chipLayers;
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
Mic*_*uba 12
它是Objective-C的新成员,称为Lightweight Generics.它是在iOS9/OS X 10.11中引入的,目的是增强Swift和Objective-C之间的互操作性.正如文件所说:
使用轻量级泛型参数化的NSArray,NSSet和NSDictionary类型的Objective-C声明由Swift导入,其中包含有关其内容类型的信息.
例如,请考虑以下Objective-C属性声明:
@property NSArray<NSDate *>* dates;
@property NSSet<NSString *>* words;
@property NSDictionary<KeyType: NSURL *, NSData *>* cachedData;
Run Code Online (Sandbox Code Playgroud)
以下是Swift如何导入它们:
var dates: [NSDate]
var words: Set<String>
var cachedData: [NSURL: NSData]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |