내 previous post 약 UIViewControllers
지정 초기화 자 initWithCoder
다음은 프로토콜 방법으로 전달 된 인수 aDecoder
에 대한 또 다른 질문이 있습니다.initWithCoder 메소드의 aDecoder가 코코아 터치에서 무엇을합니까?
@implementation WhereamiViewController
- (id)initWithCoder:(NSCoder *)aDecoder //we're overiding the superclasses (UIViewController) inititalizer
{
self = [super initWithCoder:aDecoder];
if (self){
//create location manager object
locationManager = [[CLLocationManager alloc] init];
//there will be a warning from this line of code
[locationManager setDelegate:self];
//and we want it to be as accurate as possible
//regardless of how much time/power it takes
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
//tell our manager to start looking for its location immediately
[locationManager startUpdatingLocation];
}
return self;
}
aDecoder 그래서 내 코드는 여전히 작동 것 그것은했다 있는지 확인하기 위해 이름을 변경에 대해 궁금했다 : 여기
문제의 코드입니다. 내가 알고 싶은 것은 정확히 initWithCoder에 인수로 전달되는 것입니다. 내 코드에는 아무 것도없는 것 같습니다. 인수는 메소드의 일부일 뿐이지, 주목할 만하지 만 표시되어야합니다. 다른 경우에는 다음과 같이 지정한 초기화자를 만들었습니다.
self = [super init]
init은 NSObjects로 지정된 이니셜 라이저 오른쪽입니까?
이것은 내가 이해하지 못하는 코드의 유일한 부분입니다. 내 슈퍼 클래스 이니셜 라이저를 호출 한 다음 추가 사용자 지정 코드를 사용하여 구현하거나 self (whereamiviewcontroller) 값으로 만듭니다.
나는 마커를 설정하고 로그에서 내 눈을 사로 잡을 지 알았지 만 운이 없었다. 사전에
감사
감사
설명서를 읽었습니까? 'NSCoding' 프로토콜에 대한 문서를보십시오. – rmaddy
나는 꽤 많은 시간을 보내고 아마도 나는 뭔가를 놓쳤다. NSCoding에는 두 가지 메소드가 있으며 그 중 하나는 initWithCoder입니다. 그것은 aDecoder가 객체의 unarchiver다는 것을 말한다. – LondonGuy