2011-12-08 2 views
1

NSMutableArray가 있습니다. 비어 있거나 여러 개의 propertyList 객체를 가질 수 있습니다 (제 경우에는 NSNumber 객체). xml 형식으로 디스크에 저장하고 싶습니다. 그래서 사용하고 있습니다. 이 방법은 메서드 호출되는 순간에 비어있는 NSArray를 디스크에 저장하십시오.

// In the interface  
@property (nonatomic, retain) NSMutableArray *myArray; 

// In the implementation 
if ([self.myArray writeToFile:pathToFile atomically:YES]) 
{ 
    // Success 
} else { 
    // Failure 
} 

배열이 비어있는 경우

(빈 초기화있는 NSMutableArray)는 NO를 반환하고 작업이 수행되지 않으므로 기존 데이터를 덮어 쓰지 않습니다.

어떻게 디스크에 빈 배열을 쓸 수 있습니까?

답변

4

실제로 self.myArray은 "으로 초기화되었습니다. NSMutableArray"입니까? 필자에게 빈 배열에 파일 자체를 쓰라고하면 잘 동작한다.

당신이 관찰하고있는 행동, 메시지가 NO를 반환, self.myArray이 전혀 배열이 없기 때문에이 비어 비어 있지 않은 것도 의미있는 nil를 반환과 일치한다. 배열이 없으면 메시지를 보낼 대상이 없으므로 메시지는 (이 경우) NO을 반환합니다.

self.myArray이 메시지를 보내려고 할 때 실제로 배열을 비어 있거나 다른 것으로 반환하는지 확인하십시오. 귀하가 질문에 추가하는 것이 좋을지를 확인하는 데 사용한 로깅 코드와 결과.

+0

당신은 맞습니다. 코드를 재 구현하고 속성을 초기화하지 않았지만 배열에 디스크를 저장하지 않았으므로 그 전에 내가 잘못 생각했다고 생각했습니다. –

관련 문제