2010-05-24 3 views

답변

2

개체 대신 항상 nil을 전달할 수 있으므로 지정할 필요가없는 특별한 것은 없습니다. 한편

+0

. 나는 언어의 다른 많은 부분과 마찬가지로 obj-c에 세 가지로 통보해야한다고 생각했습니다. 아무 데서도 그 문서를 찾을 수 없다는 것은 당연합니다! –

+0

상수'nil'은'(id) 0'으로 정의되어 있으므로 객체이므로 객체를 취하는 대부분의 메소드에 전달할 수 있습니다. (일부 메서드는 nil을 허용하지 않지만 * 예외는 규칙의 예외입니다. 예를 들어 NSArray에 nil을 포함 할 수 없으므로 배열에 nil을 추가하려고하면 예외가 발생합니다.) – Chuck

+3

'-addObject :'또는 유사점이 선언 된 것과 관련이있다; 구현은 단순히 전달 된 객체가'nil '인지 여부를 확인하고 예외가 throw되면 예외를 throw합니다. 메소드에 매개 변수로'nil '을 전달하는 것은 - 언어 관점에서 - 여전히 완벽하게 유효합니다. –

2
- (void) myMethod:(Parameter *)aParameter { 
    if (aParameter == nil) { 
    ... 
    } else { 
    ... 
    } 
} 

:

[anObject myMethod:foo]; 

또는 : 재미 있어요

[anObject myMethod:nil]; 
+0

고마워요, 코드 예를 들어 upvote. @ 쿠비는 1 분도 안되는 순간 당신을 때리는 체크 마크를 얻습니다. –

관련 문제