私はインスタンス変数_myStringにmyStringを合成する目的が何であるかを調べようとしています。iPhoneインスタンスの変数の問題
これを行う目的は何ですか?私はこれをやっている人が多いことに気づく傾向があります。
また、インスタンス変数を解放し、インスタンス変数をnilに設定する必要があります。正しいです。
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
(技術[自己のmyString])は、実際にアクセスしように書かれ、このオブジェクト内の関数を介して_myString IVAR設定さ
ウルの評判については、私がなぜ合成を使用するのかという知識が必要です.....私の意見では、合成は主にオブジェクトをグローバルに使用したいときに使用されます(別のアドリートもあります)。 ).. ..私が知っているように:) – Krunal
私はそれがインスタンス変数と等しいに設定することによってゲッターとセッターを作成する合成を知っていますか? – Vikings
ひとつ: 'viewDidUnload'に' _myString'をnil-outしてはいけません。このメソッドは 'viewControllers''view'がアンロードされ、これはプロパティ' myString'(またはiVar '_myString')とは関係ありません。 'viewDidUnload'では、例えば、いくつかの' .xib'に接続されている 'IBOutlet'をnil-outする必要があります。 –