菜鸟教程小白 发表于 2022-12-12 21:03:12

ios - 在类别中声明实例变量


                                            <p><p>我为 NSDictionary 定义了一个类别</p>

<p><strong>NSDictionary+AddMyFunc.m</strong></p>

<pre><code>// Compiler error: expected identifier or &#39;(&#39;
@implementation NSDictionary (AddMyFunc) {
    NSInteger myNum;
}

- (void)myFunc {
//Compiler error: use of undeclared identifier &#39;myNum&#39;
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 &lt;objc/runtime.h&gt;

static const void *ImageTagKey = &amp;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]
查看完整版本: ios - 在类别中声明实例变量