0
+ (id)videoGameWithTitle:(NSString *)newTitle publisher:(NSString *)newPublisher year:(int)newYear {
VideoGame *game = [[[VideoGame alloc] init] autorelease];
game.title = newTitle;
game.publisher = newPublisher;
game.year = newYear;
return game;
}
- (id)initVideoGameWithTitle:(NSString *)newTitle publisher:(NSString *)newPublisher year:(int)newYear {
self = [super init];
if(self) {
self.title = newTitle;
self.publisher = newPublisher;
self.year = newYear;
}
return self;
}
첫 번째 방법은 초기화 프로그램이 아닙니다. [편의 생성자] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocAllocInit.html)입니다. 두 번째 메소드는 초기화 메소드가되는 시도이지만 인스턴스 메소드로 작동하려고하는 클래스 메소드이기 때문에 실패합니다. 보조 노트로, 두 번째 방법은 초기화 프로그램을 '초기화 ...'라고 명명하는 코코아의 규칙을 따르지 않습니다. –
@Bavarious - +1에 대한 귀하의 의견입니다. @Peter가 실제로 올바르게 이름이 지정된 초기화 프로그램이 될 두 번째 방법을 의도 했으므로이 질문에서 오타가 수정되었습니다. (메서드 본문이 확실히 그가 마음에있는 것 같습니다.) –
@sherm Pendley - 편집 내용 롤백. 질문을 완전히 변경했습니다. OP가 실제로 많은 오타를 만들었다 고 가정하고 있습니다. 다른 질문입니다. – Abizern