인코딩과 디코딩에 대해 읽었을 때가끔 사람들이 끝까지 놓치지 않을 때가 있다는 것을 알았고, 일부는 varables에서는 사용되지만 다른 것들에서는 그렇지 않은 것으로 나타났습니다. 내가 물어봐도 될까요 ...initWithCoder에서 retain을 사용합니까?
(1)이 보존의 목적은 무엇이며 필요하지 않은 이유는 무엇입니까?
(2) 보존을 사용하면 릴리스와 일치시켜야한다는 것을 암시합니까?
- (id) initWithCoder: (NSCoder *) decoder {
name = [[decoder decodeObjectForKey: @"CardName"] retain];
email = [[decoder decodeObjectForKey: @"CardEmail"] retain];
}
또는
- (id) initWithCoder: (NSCoder *) decoder {
name = [decoder decodeObjectForKey: @"CardName"];
email = [decoder decodeObjectForKey: @"CardEmail"];
}
게리
대부분 디코딩 된 객체를 명시 적으로 보유하지 않는 코드 샘플은 setter 메소드를 사용하여 소유권을 주장합니다. – Chuck