菜鸟教程小白 发表于 2022-12-12 22:14:38

iphone - Objective C - 隐藏 iVar


                                            <p><p>这是我的问题。 </p>

<p>假设我有一个名为 WebServiceBase.h 的类。我需要在名为 NSString *requestData 的类中添加一个 iVar。但我不需要将该 iVar 添加到头文件中并使其对外部人员可见。 (如果我将其作为类库分发)</p>

<p>我还需要能够在从 WebServiceBase.h 扩展的其他类中访问此 requestData iVar。 (这些扩展类是我写的,不是外人写的)</p>

<p>我尝试在类扩展中声明 requestData iVar。但是它对扩展类不可见。</p>

<p>有什么解决办法吗?我需要保护我的数据并使其对外界隐藏。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以通过 <code>@protected</code> 关键字将您的 ivars 定义为 protected ,这意味着您的类和所有子类都可以毫无问题地访问它,但编译器不会允许其他不这样做的类'不要从你的基类继承:</p>

<pre><code>@interface Foo : NSObject
{
@protected
    NSObject *a;
}
</code></pre>

<p>就这么简单,并且已经为您提供了从 Objective-C 获得的所有安全性。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - Objective C - 隐藏 iVar,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/11707495/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/11707495/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - Objective C - 隐藏 iVar