@ 或者 "at" 符号编译器指令对于理解 Objective-C 的格式以及其起源和底层机制非常重要。它是使得 Objective-C 如此强大,具有表现力,并仍能一路编译成底层 C 语言的关键。
@简写符号它们涵盖了广泛的实用性却也由晦涩难懂的用法,从主要的用途如 @interface 和 @implementation 到你的整个职业生涯或许都不会遇到的如 @defs 和 @compatibility_alias。
接口与实现
@interface...@end
@implementation...@end
@class
实例变量可视性
@public
@package
@protected
@private
属性
@property
@synthesize
@dynamic
协议
@protocol
@required
@optional
异常处理
@try
@catch
@finally
@throw
对象常量
@""
@42, @3.14, @YES, @'Z'
@[]
@{}
@()
Objective-C 常量
@selector()
@protocol()
C 常量
@encode():返回一个类型的类型编码。这个类型值可以用于 NSCoder -encodeValueOfObjCType:at 中的第一个参数编码。
@defs():返回一个 Objective-C 类的布局。比如,定义一个与 NSObject 有相同布局的 struct,你只需要这样:
优化
@autoreleasepool{}
@synchronized{}
兼容
@compatibility_alias:允许现有类有不同的名称作为别名。
网友评论