ios - 在类别中声明实例变量
<p><p>我为 NSDictionary 定义了一个类别</p>
<p><strong>NSDictionary+AddMyFunc.m</strong></p>
<pre><code>// Compiler error: expected identifier or '('
@implementation NSDictionary (AddMyFunc) {
NSInteger myNum;
}
- (void)myFunc {
//Compiler error: use of undeclared identifier 'myNum'
myNum = //some operation
}
@end
</code></pre>
<p>我想定义一个<strong>实例变量</strong> <code>myNum</code>,我按照上面的方式做了,但是上面显示了编译器错误。
为什么会出现这些错误,如何消除它们?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您可以使用关联对象将属性添加到类别</p>
<pre><code>#import <objc/runtime.h>
static const void *ImageTagKey = &ImageTagKey;
@implementation UIImage (Tagged)
- (void)setTag:(NSSting *)tag
{
objc_setAssociatedObject(self, ImageTagKey, tag, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
- (NSString *)tag
{
return objc_getAssociatedObject(self, ImageTagKey);
}
@end
</code></pre></p>
<p style="font-size: 20px;">关于ios - 在类别中声明实例变量,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/38121274/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/38121274/
</a>
</p>
页:
[1]