@property(nullable,nonatomic,copy) NSDictionary<NSString *,id> *titleTextAttributes NS_AVAILABLE_IOS(5_0) UI_APPEARANCE_SELECTOR;
@property(nullable,nonatomic,copy)
: 声明一个 property
。它允许是 nil
(nullable
)。它将具有非原子语义,这与多线程有关 - 这意味着默认情况下没有同步就不是线程安全的(不用担心),当它被设置时,它会进行一次 copy
。
NSDictionary<NSString *,id> *
- 属性的类型是将字符串映射到任何对象(id
)的字典。
titleTextAttributes
- 属性的名称
NS_AVAILABLE_IOS(5_0)
- 这是一个宏,在代码中不起作用,但可以让您知道它自 iOS 5.0 起可用。
UI_APPEARANCE_SELECTOR 的文档说:
要参与外观代理 API,请在头文件中使用 UI_APPEARANCE_SELECTOR 标记外观属性选择器。
外观属性选择器必须采用以下形式:
- (void)setProperty:(PropertyType)property forAxis1:(IntegerType)axis1 axis2:(IntegerType)axis2 axisN:(IntegerType)axisN;
- (PropertyType)propertyForAxis1:(IntegerType)axis1 axis2:(IntegerType)axis2 axisN:(IntegerType)axisN;
对于任何属性,您可以没有轴或拥有任意数量的轴。PropertyType 可以是任何标准 iOS 类型: id、NSInteger、NSUInteger、CGFloat、CGPoint、CGSize、CGRect、UIEdgeInsets 或 UIOffset。IntegerType 必须是 NSInteger 或 NSUInteger;如果在轴中使用其他类型,我们将抛出异常。