我想弄清楚合成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