我写了下面的 objective-c 类。

@interface thumb_user_info : NSObject
{
@public // Otherwise I was not able to access in other class.
    NSString *user_name;
    int       user_id;
}
@end

当我在其他类中创建实例并尝试为user_id设置值时,它显示错误“它受到保护”,如何访问这些ivars而不像上面那样公开。我了解 objective-c 的基本知识,我想毫不犹豫地阐明自己。

注意:我也尝试通过综合它...仍然相同的错误...

谢谢。

最佳答案

您要问的是面向对象编程(OOP)的基础之一。

您可以通过将其 private 化来对其进行封装,绑定和隐藏。

如果希望它们可见,则将其公开。

如果将它们隐藏起来但可以继承,则可以对其进行保护。

因此,无法从外部自学类访问您的 private ivars /方法。

如果要访问 private ivars值,请使用 public 方法并间接获取/返回该值。

synthesize为ivars( private /受保护/ public )创建方法,如果它在.h中变为 public 。

关于iphone - 如何在不公开的情况下访问类(class)中的其他类(class)成员(ivars)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14476678/

10-13 03:52