访问Objective C中的公共字段

Who*_*ian 2 field public objective-c

我试过以下示例代码:

    #import "Foundation/Foundation.h"

    @interface example
    {
        @public NSString* name;
    }
    @end

    @implementation example @end

    int main()
    {
        example* me;
        me->name = @"World";
    }

看来我的代码在这一点上讨厌我.我确实理解将一个字段公开是多么糟糕的想法,但我不确定为什么我在main()的最后一行收到错误.

Pau*_*l.s 5

这里有很多错误

你的类应该是子类,NSObject所以应该声明为

@interface example : NSObject
{
    @public NSString* name;
}

@end
Run Code Online (Sandbox Code Playgroud)

接下来,您实际上需要一个类的实例来获取它的值,例如

example *me = [[example alloc] init];
NSLog(@"%@", me->name);
Run Code Online (Sandbox Code Playgroud)

下一个类以大写字母开头,通常有一个前缀,例如我会使用

PSExample
Run Code Online (Sandbox Code Playgroud)

接下来请不要像这样访问实例变量,你应该通过访问器使对象状态可用,而不是直接访问.