2009-04-24 2 views

답변

1

Nil은 null과 동일하지만 개체의 경우입니다. 그것은 어떤 물건도 의미하지 않는다.

점 구문은 [self setMyOutletProperty : nil]을 호출하는 것과 같습니다.

그래서 일부 속성에서 개체를 제거하면됩니다. 의미는 당신이 이야기하고있는 속성에 달려 있습니다.

7

설치 1. 속성 유형이 "복사"또는 "유지"된다

self.myOutletProperty = 닐; [myOutletProperty release]와 동일합니다.

2.If 속성 타입은, "할당"인 다음

self.myOutletProperty = 닐; 아무 일도하지 마라.

12

당신은 알아야한다, 그 자산은 단지 설탕이다.

예를 들면 :

@property(nonatomic, retain) NSString *myString; 

, 그것은 실제로 염두에두고

2

한 가지를 해제 당신이 방법보다 더에서 @property를 선언 그렇다면

- (NSString*)myString { 
    return myString; 
} 

- (void)setMyString:(NSString*)newString { 
    if (myString != newString) { 
     [myString release]; 
     myString = [newString retain]; 
    } 
} 

로 변환됩니다 심지어입니다 속성을 nil로 설정해도 문제가 없지만 대신 dealloc 메서드에서 [object release]을 호출하는 것이 좋습니다. 이렇게하면 다른 ivar (이미 공개되었을 수도 있음)를 참조하는 자체 setter 메소드를 작성하거나 해당 속성에 KVO 알림을 등록한 경우 안전합니다.

관련 문제