오랫동안 휴식을 취한 Obj-C 및 iPhone 개발자를 데려 오려고 했으므로 Apress의 iPhone 3 개발 시작을 다시 읽으려고합니다. 이제Obj-C/Cocoa 인스턴스/포인터/속성 예제를 이해하는 데 도움이 필요합니다.
, 나는 다음과 같은 주위에 내 머리를 얻기 위해 사투를 벌인거야 :
#import "BlueViewController.h"
....
@synthesize blueViewController;
...
- (void)viewDidLoad {
BlueViewController *blueController = [[BlueViewController alloc]
initWithNibName:@"BlueView" bundle:nil];
self.blueViewController = blueController;
[self.view insertSubview:blueController.view atIndex:0];
//Why don't we use the following instead of the above?
//[self.view insertSubview:self.blueViewController.view atIndex:0]?
[blueController release];
[superViewDidLoad];
}
을 그것은 더 논리적 인 것 같습니다 나에게 blueController를 self.blueViewController에 할당했기 때문에 후자를 사용해야한다. 이 예제 뒤에있는 추론은 무엇입니까? 내 방식에 무슨 문제가 있니?
그것은 확실히 잘 읽습니다. 다음과 같은 방식으로 작동합니까? [self.view insertSubview : _blueController.view atIndex : 0]; – Oliver
예. _blueController와 self.blueController는 접근 자 메서드를 재정의하지 않기 때문에이 경우 정확히 동일합니다. 접근자를 사용하는 것과 직접 값을 설정하는 것은 동일하지 않습니다. 직접 설정은 보존을 추가하지 않으며 KVO를 트리거하지 않습니다. –