我想弄清楚合成myString到實例變量_myString的目的是什麼。iPhone實例變量問題
這樣做的目的是什麼?我傾向於注意到很多人這樣做。
另外我應該釋放實例變量並將實例變量設置爲零,是否正確。
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
NSString *_myString;
}
@property (nonatomic, retain) NSString *myString;
@end
ViewController.m
#import "ViewController.h"
@implementation ViewController
@synthesize myString = _myString;
- (void)viewDidLoad
{
[super viewDidLoad];
self.myString = [[NSString alloc] initWithFormat:@"Hello"];
_myString = [[NSString alloc] initWithFormat:@"Goodbye"];
NSLog(@"%@\t%@", self.myString, _myString);
}
- (void)viewDidUnload
{
_myString = nil;
[super viewDidUnload];
}
- (void)dealloc
{
[_myString release];
[super dealloc];
}
@end
就我們的聲望而言,你應該知道我們爲什麼要使用綜合......就我的觀點而言,綜合主要用於我們想要全局使用對象的時候(它也有另一個優點)..因爲我知道.. :) – Krunal 2012-03-19 13:58:13
我知道它合成創建一個getter和setter爲什麼設置它等於實例變量? – Vikings 2012-03-19 14:05:05
有一件事:你不應該在'viewDidUnload'中剔除'_myString',這個方法在'viewControllers'' view''被卸載並且與'myString'(或iVar'_myString')無關時調用。在'viewDidUnload'中,你應該省略掉連接到'.xib'的'IBOutlet'。 – 2012-03-19 14:07:05