문제

내가 조금 불분명 한 한 가지는 NSMutableArray 방법의 차이점입니다.

// Class Method Style

NSMutableData *myMutableDataInstance = [NSMutableData dataWithLength:WholeLottaData];

그리고

// Instance Method Style

NSMutableData *myMutableDataInstance = nil;

myMutableDataInstance = [[[NSMutableData alloc] initWithLength:WholeLottaData]] autorelease];

후드 아래에서, 클래스 방법은 여기서 무엇을하고 있습니까? 인스턴스 방법과 어떻게 다릅니 까?

건배, 더그

도움이 되었습니까?

해결책

클래스 메소드는 NSMutableArray 객체를 생성하고 자동 표시합니다.

인스턴스 메소드는 자신을 할당 해야하는 객체를 초기화합니다. 당신이 작성한 코드는 실제로 아무것도하지 않을 것입니다. myMutableArrayInstance ~이다 nil. 클래스 방법은 다음과 거의 같습니다.

NSMutableArray *myMutableArrayInstance = [NSMutableArray alloc];
[myMutableArrayInstance initWithCapacity:WholeLottaData];
[myMutableArrayInstance autorelease];

그리고 Peter Hosey가 의견에 언급 한 것처럼, 그것은 실제로 이것을 의미합니다.

NSMutableArray *myMutableArrayInstance = [[[NSMutableArray alloc]
                                           initWithCapacity:WholeLottaData]
                                           autorelease];

위의 결과와 다른 결과가 있습니다. initWithCapacity: 메소드는 다른 객체를 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top