1

我的类中有一些实例变量,我希望在任何地方都可以访问它们。像这样:

@interface SomeObject : NSObject
{
    @public
        NSString *someString;
}
@end

@implementation SomeObject
@end

我可以使用如下语法从实例访问属性->,就像我在 C++ 中所做的那样:

someObjectInstance->someString

someString当我想要的只是让外界可以访问它时,我应该建造一个财产吗?我将在我的界面中创建一个@propertyfor并在我的实现中创建它,这将使我能够使用点语法访问它。someString@synthesize

4

2 回答 2

3

一般来说,如果你想暴露数据,你应该使用属性。一般来说,将实例变量公开是一个坏主意。

于 2012-01-24T10:09:28.600 回答
0

是的,因为当你把它变成 a 时,你正在做的@property是指导人们使用它来调用setSomeStringandsomeString方法,实际上。即使您正在使用@synthesize它们,使用这些方法对您的代码质量也更好,因为您可以根据需要更改它们。如果您只是使用指针引用,如果您发现自己需要拦截访问,您将无法做到。

于 2012-01-24T10:12:43.873 回答