bar 속성을 가진 NSFoo 클래스가 있습니다. bar 속성이 설정된 NSFoo의 인스턴스를 가져 오는 클래스 메서드가 필요합니다. 이것은 NSString stringWithFormat 클래스 메소드와 유사합니다. 그래서 서명은 다음과 같습니다Objective-C에서 할당 자 클래스 메서드를 만들려면 어떻게해야합니까?
+ (NSFoo *) fooWithBar:(NSString *)theBar;
그래서 이런 식으로 부를 것이다 :
NSFoo *foo = [NSFoo fooWithBar: @"bar"];
을 나는 이것이 올바른 수 있습니다 생각하고 있어요 : 제대로 보이지
+ (NSFoo *) fooWithBar:(NSString *)theBar {
NSFoo *foo = [[NSFoo alloc] init];
foo.bar = theBar;
[foo autorelease];
return foo;
}
합니까를?
당신은 반환에 마지막 두 줄을 결합하여 그것을 조금 단순화 할 수 있습니다, 당신은 아마이 방법을 쓸 것이다, 물론
: 귀하의 방법은 다음과 같이 쓸 수있다 [foo autorelease]; –
부수적으로 NS 접두어는 Cocoa 클래스 (원래 NextStep 클래스 라이브러리) 용으로 예약되어 있습니다. 이름 충돌을 방지하려면 필요에 따라 클래스에 고유 한 접두사를 사용해야합니다. –