개체 목록을 저장하는 작은 iPhone 앱이 있습니다. 사용자는 객체를 추가 및 제거 할 수 있지만이 목록은 상당히 작습니다 (대부분의 사용자는 10-30 개의 객체를가집니다). NSUserDefaults
은 더 쉽게 작업 할 수 있지만, sqlite3
은 더 빨라 집니까? 오직 30 개의 "기록"만으로도 눈에 띄는 차이가있을 것입니까?NSUserDefaults 대 sqlite3
답변
NSUserDefaults는 일반적으로 NSString 또는 NSNumber와 같은 기본 개체 인 사용자 기본 설정 용입니다. 속성 목록에있는 개체 컬렉션을 직렬화하는 Sqlite 또는 Core Data는 사용자가 만든 모델 개체와 같은 사용자 데이터를 저장하는 데 유효한 모든 옵션입니다.
속도 차이는 볼 수 없지만 수행중인 작업에 대한 올바른 메커니즘을 선택하는 것이 가장 좋습니다. 그것은 단지 환경 설정을 누른 다음 NSUserDefaults를 사용하십시오, 그렇지 않으면 plist에 개체를 직렬화합니다. 코코아를 처음 접 하셨다면 처음에는 핵심 데이터와 심지어는 sqlite를 피하면서 기본 사항을 먼저 배울 기회를 얻으실 수 있습니다.
저는 코코아를 처음 사용하지만 데이터베이스 시스템을 처음 사용합니다. 제가 읽은 튜토리얼의 대부분은 sqlite 문에 많은 오버 헤드가있는 것처럼 보입니다. 앱이 종료 될 때까지 시작 및 캐시 변경시 모든 데이터를 읽는 것이 표준처럼 보입니다. – respectTheCode
저는 sqlite3을 계속 사용하려고합니다. 이 유형의 데이터에 대한보다 논리적 인 해결책 인 것 같습니다. – respectTheCode
NSCoding 프로토콜을 사용해보십시오.
이@interface Person : NSObject <NSCoding>
이전 라인은 다음과 같은 방법을 구현하기 위해 약속 : NSCoding 프로토콜을 구현하는 클래스를 선언
-(void)encodeWithCoder:(NSCoder *)coder {
[super encodeWithCoder:coder];
[coder encodeObject:firstName forKey:@"firstName"];
[coder encodeObject:lastName forKey:@"lastName"];
}
-(id)initWithCoder:(NSCoder *)coder {
[super init];
firstName = [[coder decodeObjectForKey:@"firstName"] retain];
lastName = [[coder decodeObjectForKey:@"lastName"] retain];
return self;
}
다음 프로젝트를 위해이 부분을 조사해야합니다. – respectTheCode
이것은 "NSUserDefaults에 개체를 저장하는 방법"에 대한 대답이며 다른 가능성의 이점에 대해서는 설명하지 않습니다. –
- 1. NSUserDefaults와 SQLite3. NSUSerDefaults 불변?
- 2. NSUserDefaults 대 NSKeyedArchiver
- 3. 속도 : XML 대 NSUserDefaults
- 4. Settings.bundle 대 NSUserDefaults
- 5. SQLite : sqlite3.dll 대 System.Data.SQLite.dll?
- 6. Sqlite3 데이터베이스 대 배열 채우기
- 7. 도쿄 캐비닛 대 iPhone의 SQLite3
- 8. NSUserDefaults 대 CFPreferences 고려해야 할 사항
- 9. sqlite3 iPhone 에뮬레이터 대 장치 권한?
- 10. NSUserDefaults : 전무
- 11. NSUserDefaults - 다시로드해야합니까?
- 12. NSUserDefaults 문제
- 13. NSUserDefaults 오류
- 14. iPhone NSUserDefaults
- 15. NSUserDefaults Help
- 16. sqlite3?
- 17. NSUserDefaults : setObject crash
- 18. NSUSERDefaults 클래스에 문제가 있습니까?
- 19. 로직 테스트의 NSUserDefaults
- 20. NSUserDefaults {iPhone SDK}
- 21. NSUserDefaults 값이 설정되지 않습니다.
- 22. 보관있는 NSMutableArray는 NSUserDefaults
- 23. NSUSerDefaults 데이터 가져 오기
- 24. Monotouch의 배열 NSUserDefaults
- 25. UIPickerView 및 NSUserDefaults 문제
- 26. NSUserDefaults + 로컬 알림
- 27. 충돌 가져 오는 NSUserDefaults
- 28. Iphone NSUserDefaults 문제가 있으십니까?
- 29. NSUserDefaults 제한 정수?
- 30. iPhone NSUserDefaults 지속성 난이도
코어 데이터가 최선의 선택입니다 :처럼 보일 것이다
귀하의 방법 이제 iPhone OS 용. – respectTheCode