2011-08-18 6 views
2

내 앱에 대한 아주 간단한 북마크 메뉴를 만들고 있습니다. 각 객체에 3 개의 문자열을 저장하면됩니다.북마크 용 데이터를 저장하는 방법?

핵심 데이터를 사용하려고 생각했지만 여러 가지 이유로 내 핵심 데이터베이스와 연결되는 것을 원하지 않습니다. 따라서 다른 쉬운 옵션에는 어떤 것들이 있습니까? NSUserDefaults 또는 .plist?

각 개체에 대해 3 개의 문자열을 저장 한 다음보고 싶은 테이블보기로로드하면됩니다.

답변

1

NSUserDefaults를 권하고 싶습니다. 확실히 쉽습니다. 필자는 개발자로 편집 할 수있는 정적 데이터에만 plist 파일을 사용하는 경향이 있지만 응용 프로그램에서는 읽기 전용 (예 : 포함 된지도 이미지의 개체 좌표)으로 원합니다.

설명에서 NSDictionary를 포함하는 NSArray를 저장하고 싶을 것입니다.

// Get the user defaults object 
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 


// Load your bookmarks (editable array) 
NSMutableArray *bookmarks = [[NSMutableArray alloc]init]; 
NSArray *bookmarksLoaded = [userDefaults arrayForKey:@"bookmarks"]; 
if (bookmarksLoaded != nil) { 
    [bookmarks initWithArray:bookmarksLoaded]; 
} else { 
    [bookmarks init]; 
} 

// Add a bookmark 
NSMutableDictionary *bookmark = [NSMutableDictionary new]; 
[bookmark setValue:@"value" forKey:@"name"]; 
[bookmark setValue:@"value" forKey:@"description"]; 
[bookmark setValue:@"value" forKey:@"code"]; 
[bookmarks addObject:bookmark]; 

// Save your (updated) bookmarks 
[userDefaults setObject:bookmarks forKey:@"bookmarks"]; 
[userDefaults synchronize]; 

// Memory cleanup 
[bookmarks release]; 
+0

감사합니다. 어떻게 설정해야합니까? 내가 선택한 테이블 뷰에 버튼이 있다고 말하면, 북마크 배열에 추가하고 싶습니다. 저장하고자하는 문자열'name','description','code'가 있습니다. 일단 저장되면 NSUserDefaults에서 배열을로드하는 방법이 필요합니다. –

+0

내 답변을 업데이트했습니다 – Johnus

+0

'*** 북마크가 addObject : bookmark];에서'*** 캐치되지 않은 예외로 인해 응용 프로그램 종료 중 'NSInvalidArgumentException'오류가 발생했습니다. 이유는 다음과 같습니다. '*** - [NSMutableArray count] : 초기화되지 않은 가변 배열 객체로 전송 된 메소드 ' –

관련 문제