菜鸟教程小白 发表于 2022-12-12 16:24:14

ios - if(objc_getAssociatedObject(self, &Key)) 为 nil 对象返回 true


                                            <p><p>如何测试 <code>objc_getAssociatedObject</code> 是否为 <code>nil</code>?下面说元素不是 <code>nil</code> 但关联的对象之前从未设置过也没有被访问过。</p>

<pre><code>static char orderedElementKey = 11;

if (objc_getAssociatedObject(self, &amp;orderedElementKey) != nil)
{
    NSLog(@&#34;element is not nil&#34;);
    return objc_getAssociatedObject(self, &amp;orderedElementKey);
}
NSLog(@&#34;elelement was nil !&#34;);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><pre><code>static char orderedElementKey = 11;
//objc_setAssociatedObject(self, &amp;orderedElementKey, @&#34;value&#34;, OBJC_ASSOCIATION_RETAIN);

if (objc_getAssociatedObject(self, &amp;orderedElementKey) != nil)
{
    NSLog(@&#34;Element: %@&#34;, objc_getAssociatedObject(self, &amp;orderedElementKey));
}
else
{
    NSLog(@&#34;element nil !&#34;);
}
</code></pre>

<p>打印“元素零!”在删除 <code>objc_setAssociatedObject()</code> 上的注释时会打印“Element: value”。你的代码有什么不同?</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - if(objc_getAssociatedObject(self, &amp;Key)) 为 nil 对象返回 true,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/20002279/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/20002279/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - if(objc_getAssociatedObject(self, &amp;Key)) 为 nil 对象返回 true