在 iOS 开发中,`@property` 是一个非常有用的特性,它允许你在类中声明实例变量,并自动生成 getter 和 setter 方法。你可以在 `@protocol` 和 `category` 中使用 `@property`。 1. 在 `@protocol` 中使用 `@property`: 在协议中,`@property` 用于声明一个属性,该属性必须由实现协议的类来实现。这意味着如果你有一个协议,其中声明了一个属性,那么任何实现该协议的类都必须提供该属性的 getter 和 setter 方法。 例如: ```objective @protocol MyProtocol <NSObject> @property (nonatomic, strong) NSString *myProperty; @end ``` 在上面的例子中,任何实现 `MyProtocol` 的类都需要有一个名为 `myProperty` 的属性,并提供相应的 getter 和 setter 方法。 2. 在 `category` 中使用 `@property`: 在类别中,`@property` 可以用来给已有类添加新的属性。这可以用来在不修改原始类源代码的情况下扩展其功能。 例如,给 `UIView` 类别添加一个新的属性: ```objective @interface UIView (MyCategory) @property (nonatomic, strong) UIColor *myProperty; @end ``` 在上面的例子中,我们为 `UIView` 类添加了一个名为 `myProperty` 的新属性,并提供相应的 getter 和 setter 方法。注意,类别不能添加实例变量,只能添加属性。这是因为类别是在运行时动态加载的,它们不能像类那样拥有自己的实例变量。它们可以添加属性,这些属性在运行时会被动态地映射到原始类的实例变量上。 [2023-11-09 17:38:54 | AI问答 | 371点数解答]