在ARC項目中工作時,使用實例變量(在接口上聲明),它們的@property
和@synthesize
的正確方法是什麼?我現在做的是以下幾點:在ARC中使用實例變量/屬性/合成的正確方法
SomeClass.h:
@interface SomeClass : NSObject {
NSString *someString;
}
@property(nonatomic, copy) NSString* someString;
和SomeClass.m:
@implementation SomeClass
@synthesize someString;
- (void)someMethod {
self.someString = @"Foobar";
}
的事情是,有一些作品,如僅使用其他方法@屬性:
SomeClass.h:
@interface SomeClass : NSObject
@property(nonatomic, copy) NSString* someString;
訪問someString
不self
:
SomeClass.m:
@implementation SomeClass
@synthesize someString;
- (void)someMethod {
someString = @"Foobar";
}
等我是新來的Objective-C,我已經習慣了的Java。那麼使用屬性的正確方法是什麼?我知道特殊情況會有特殊的行爲,但一般情況下最好的辦法是什麼? (一般我的意思是我想從類本身和「外部」訪問變量,我希望ARC仍然正常工作,例如,我不必擔心內存泄漏)
只需定義屬性。如果你使用Xcode 4.5+,你甚至不需要合成語句。這被認爲是正確的方式,因爲屬性會自動創建iVar。如果您需要使用iVar,那麼如果在Xcode 4.5+中,在屬性名稱前面使用「_」(因爲它們是自動創建的),如果不是,則創建它們,如下所示:@synthesize variable = _variable; – Petar 2013-03-13 11:59:02
@ pe60t0實際上在Xcode 4.4中引入了不再需要使用'@ synthesize'語句的需求。 – 2013-03-13 12:08:32
我的不好,現在無法編輯評論。 – Petar 2013-03-13 12:13:08