2

我尝试了以下示例代码:

    #import "基础/Foundation.h"

    @接口示例
    {
        @public NSString* 名称;
    }
    @结尾

    @实现示例 @end

    主函数()
    {
        例子*我;
        我->名字=@“世界”;
    }

看来我的代码在这一点上讨厌我。我确实理解公开一个字段是多么糟糕的主意,但我不确定为什么在 main() 的最后一行出现错误。

4

3 回答 3

6

这里有很多错误

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

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

@end

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

example *me = [[example alloc] init];
NSLog(@"%@", me->name);

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

PSExample

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

于 2012-05-23T15:27:41.373 回答
2

您没有分配或初始化me变量。您可能想要继承NSObject然后使用它:

example *me = [[example alloc] init]

至少你需要alloc它。

于 2012-05-23T15:25:08.200 回答
2

您需要先初始化变量,然后才能访问它。此外,您应该从NSObject.

#import "Foundation/Foundation.h"

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

@implementation example @end

int main()
{
    example* me = [[example alloc] init];
    me->name = @"World";
}
于 2012-05-23T15:25:47.740 回答