但这没有什么问题,因为你的法典是错误的。
- You can t declare instance variables in a category; using the latest Objective-C ABI, you can declare new instance variables within a class extension (
@interface AClass () {//...
), but that is different from a category (@interface AClass (ACategory)
).
- Even if you could, the syntax for instance variable declaration is that they be enclosed in curly braces after the
@interface
line.
你可以宣布某类财产,但你必须使用新的试样(hence,@dynamic
,而不是@synthesize
)来界定其储存。
关于你的实际问题,除非你使用方法宽恕,否则,你可以指先执行压倒性的方法(通过诸如<条码>的操作时间功能而促成)。 我建议不要这样做;这确实令人恐惧和危险。
Update: Explanation of Instance Variables in Class Extensions
班级的延伸与一类,但是一种匿名的,必须列入<代码>。 它希望:
@interface SomeClass () {
// any extra instance variables you wish to add
}
@property (nonatomic, copy) NSString *aProperty;
@end
其执行<><>must<>>>>>>/strong> 载于“<>>>><<>>>>>>>_>。 因此:
@implementation SomeClass
// synthesize any properties from the original interface
@synthesize aProperty;
// this will synthesize an instance variable and accessors for aProperty,
// which was declared in the class extension.
- (void)dealloc {
[aProperty release];
// perform other memory management
[super dealloc];
}
@end
因此,等级延伸有助于将私人案例变量和方法排除在公共接口之外,但不会帮助你把变量添加到你控制着的一类。 <代码>-dealloc不存在任何问题,因为你只是像你通常那样执行,而列入对你在班级延长范围内提出的变量的任何必要的记忆管理。
<><>>>> 请注意,这只字眼只能与最新的64轨道目标-C ABI.。