2011-01-11 5 views
0

나는 uitableviews에 대한 여러 자습서를 작성했습니다.NSMutableArray에서 .plist로 변경

것은 내가 지시 한대로, 넣어 가지고,

listOfItems = [[NSMutableArray alloc] init]; 

NSArray *countriesToLiveInArray = [NSArray arrayWithObjects:@"Iceland", @"Greenland", @"Switzerland", @"Norway", @"New Zealand", @"Greece", @"Rome", @"Ireland", nil]; 
NSDictionary *countriesToLiveInDict = [NSDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"]; 

NSArray *countriesLivedInArray = [NSArray arrayWithObjects:@"India", @"U.S.A", nil]; 
NSDictionary *countriesLivedInDict = [NSDictionary dictionaryWithObject:countriesLivedInArray forKey:@"Countries"]; 

[listOfItems addObject:countriesToLiveInDict]; 
[listOfItems addObject:countriesLivedInDict]; 

아래로 'LISTOFITEMS'에 대한 모든 정보 이것을 구분 테이블 뷰를 작성합니다. RootViewController.m에 모든 것을 입력하는 대신 .plist로 변경하는 방법을 알고 싶습니다. 나는 여전히 그것이 sectioned tableview에 있기를 바랄 것이다.

이 NSMutableArray, NSArray 및 NSDictionary를 plist로 변경하는 간단한 방법이 있습니까?

답변

0

writeToFile:atomically: 수있는 간단한 방법이있다 :

[listOfItems writeToFile:destinationPath atomically:YES]; 

이 자동으로 내부 PLIST을 가진 파일을 생성합니다.

0

그 sorta는 당신이 plist에서 원하는 것과 당신이 무엇을 넣었 느냐에 달려 있습니다. 항목과 내용이 모두 CFPropertyList 유형 (CFString, CFDate, CFData, CFDictionary, CFArray, CFNumber ...) 인 경우 CFPropertyListCreateDeepCopy과 같은 형식으로 만듭니다.

변환 할 수없는 맞춤형 개체 (예 : 자체 NSObject 하위 클래스)가있는 경우 코코아 보관 주제를 참조하십시오.

+0

당신은 또한 다음에 그것을 가져 나는 PLIST에서 동일한 값을 싶습니다 NSPropertyListSerialization – justin

+0

을 사용할 수 있습니다를 업데이트입니다 파일. 그래서 같은 결과를 만들어 내야합니다. –

+0

@Kurt Lane 물론 CFPropertyList가 지원하는 유형 (해당 목록 및 CFBooleanRef - 모든 유형은 수신자 부담 브리지입니다)에 대한 설명서를 참조하십시오. 따라서 컬렉션 객체를 plist에 넣으면 컬렉션의 모든 항목도 지원되는 유형 중 하나 여야합니다. 이 목록 밖에서 객체 표현을 보관해야하는 경우 이러한 유형 만 사용하여 보관/보관을 지원하거나보다 정교한 유형의 객체를 보관하는 데 재단의 보관 기능을 사용해야합니다. 귀하의 예제 (배열, 사전, 문자열)의 모든 내용은 (계속) – justin

0

이것은 간단한 함수 끝 들으 relization

이 기능이있는 NSArray

- (void) WriteRecordToFile:(NSMutableDictionary*)countDict { 
    // Here to write to file 
    databasePathCallCount = @"plist path"; 
    NSMutableArray *countArray = [NSMutableArray arrayWithContentsOfFile:databasePathCallCount]; 
    if(countArray) 
     [countArray addObject:countDict]; 
    [countArray writeToFile:databasePathCallCount atomically:NO]; 
} 
관련 문제