我有一個關於實例變量如何工作以及何時使用@property的問題。這裏是我正在使用的示例接口文件關於ivars和@財產在iPhone上的問題
@interface PackageModel : NSObject {
NSString *tracking;
NSString *carrier;
NSString *status;
NSMutableDictionary *events;
// Connection ivars
NSMutableData *receivedData;
// Parsing ivars
int tagLevel;
NSMutableArray *tagTree;
NSString *parentTag;
NSString *currentTag;
}
@property (nonatomic, retain) NSMutableData *receivedData;
- (id)initWithTrackingString:(NSString *)string;
- (void)getPackageDataWithEvents;
- (void)printMe;
@end
如何在文件的代碼中訪問這些文件。我可以訪問跟蹤,載體和狀態在這個類的方法只是通過使用類似
tracking = [[NSString alloc] initWithString:@"Hello World"];
此外,變量需要放在dealloc的是什麼?只有我在@ property/@綜合中的變量?或者我需要釋放dealloc方法中的所有實例變量。
我只是尋找一些關於實例變量如何在Objective-C中工作的說明。謝謝。
現在,我已經定義了currentTag和parentTag,我將通過currentTag = qName將它們設置在NSXMLParser委託方法中。我不需要在dealloc中釋放它們,因爲它們只是指向其他字符串的指針,對嗎?但是,如果我讓他們@特性,我需要釋放他們的權利? – rickharrison 2010-01-31 22:38:49
rickharrison:「@財產」與你是否擁有該物品無關。無論你如何擁有它,都沒關係。如果你擁有它,你必須釋放它。請參閱內存管理規則:http://developer.apple.com/mac/library/documentation/General/Conceptual/DevPedia-CocoaCore/MemoryManagement.html – 2010-02-01 03:43:00