rob*_*kes 20 macos cocoa objective-c
谁能告诉我Obj-C类接口中的尖括号"<...>"有什么用呢?像这样... http://snipt.net/robhawkes/cocoa-class-interface
@interface MapMeViewController : UIViewController <CLLocationManagerDelegate,
MKReverseGeocoderDelegate, MKMapViewDelegate, UIAlertViewDelegate> { ... }
Run Code Online (Sandbox Code Playgroud)
从我的观点它们看起来像某种类型声明的(考虑到我以前在PHP和JavaScript的经验),就像我们要确保MapMeViewController是CLLocationManagerDelegate,MKReverseGeocoderDelegate,MKMapViewDelegate,或UIAlertViewDelegate
有关@interface语法的文档似乎没有提到这一点.
Pey*_*loW 35
类接口定义中的尖括号表示您的类符合的协议.
协议几乎就像Java或C#中的接口,并且Objective-C协议中的方法可以是可选的.
另外,在Objective-C中,您可以声明变量,参数或实例变量以符合多个协议.例
NSObject<NSCoding, UITableViewDelegate> *myVariable;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,类必须是NSObject或子类(仅限NSProxy其子类将失败),并且它还必须符合两者NSCoding和UITableViewDelegate协议.
在Java或C#中,这只能通过实际声明所述类来实现.
您还可以在类似转换的代码中使用它们,以告诉编译器期望符合特定协议的对象.
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.noteFetcher sections] objectAtIndex:section];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8767 次 |
| 最近记录: |