NSDictionary에 어떻게 저장할 수 있습니까? NSDictionary와 NSMutableDictionary의 차이점은 무엇입니까?
.NET Framework를 사용하려는 응용 프로그램을 개발 중 NSDictionary
입니다. 누구든지 NSDictionary
완벽한 예제와 함께 데이터를 저장 하는 데 사용하는 절차를 설명하는 샘플 코드를 보내 주 시겠습니까?
있는 NSDictionary 와 NSMutableDictionary 문서는 아마 당신의 최선의 방법이다. 그들은 심지어 다양한 일을하는 방법에 대한 훌륭한 예를 가지고 있습니다.
... NSDictionary 만들기
NSArray *keys = [NSArray arrayWithObjects:@"key1", @"key2", nil];
NSArray *objects = [NSArray arrayWithObjects:@"value1", @"value2", nil];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects
forKeys:keys];
... 반복 해
for (id key in dictionary) {
NSLog(@"key: %@, value: %@", key, [dictionary objectForKey:key]);
}
... 변경 가능하게
NSMutableDictionary *mutableDict = [dictionary mutableCopy];
참고 : 2010 년 이전 버전 : [[dictionary mutableCopy] autorelease]
... 그리고 그것을 변경
[mutableDict setObject:@"value3" forKey:@"key3"];
... 그런 다음 파일에 저장
[mutableDict writeToFile:@"path/to/file" atomically:YES];
... 다시 읽어보세요
NSMutableDictionary *anotherDict = [NSMutableDictionary dictionaryWithContentsOfFile:@"path/to/file"];
... 값 읽기
NSString *x = [anotherDict objectForKey:@"key1"];
... 키가 있는지 확인
if ( [anotherDict objectForKey:@"key999"] == nil ) NSLog(@"that key is not there");
... 무서운 미래형 구문 사용
2014 년부터는 [dict objectForKey : @ "key"] 대신 dict [@ "key"]를 입력하면됩니다.
NSDictionary *dict = [NSDictionary dictionaryWithObject: @"String" forKey: @"Test"];
NSMutableDictionary *anotherDict = [NSMutableDictionary dictionary];
[anotherDict setObject: dict forKey: "sub-dictionary-key"];
[anotherDict setObject: @"Another String" forKey: @"another test"];
NSLog(@"Dictionary: %@, Mutable Dictionary: %@", dict, anotherDict);
// now we can save these to a file
NSString *savePath = [@"~/Documents/Saved.data" stringByExpandingTildeInPath];
[anotherDict writeToFile: savePath atomically: YES];
//and restore them
NSMutableDictionary *restored = [NSDictionary dictionaryWithContentsOfFile: savePath];
주요 차이점 : NSMutableDictionary는 제자리에서 수정할 수 있지만 NSDictionary는 . Cocoa의 다른 모든 NSMutable * 클래스에 대해서도 마찬가지입니다. NSMutableDictionary는 NSDictionary 의 하위 클래스 이므로 NSDictionary로 할 수있는 모든 작업은 둘 다로 할 수 있습니다. 그러나 NSMutableDictionary는 method와 같은 항목을 수정하는 보완 메서드도 추가합니다 setObject:forKey:
.
다음과 같이 둘 사이를 변환 할 수 있습니다.
NSMutableDictionary *mutable = [[dict mutableCopy] autorelease];
NSDictionary *dict = [[mutable copy] autorelease];
아마도 데이터를 파일에 기록하여 저장하고 싶을 것입니다. NSDictionary에는이를 수행하는 방법이 있습니다 (NSMutableDictionary에서도 작동 함).
BOOL success = [dict writeToFile:@"/file/path" atomically:YES];
파일에서 사전을 읽으려면 해당하는 방법이 있습니다.
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:@"/file/path"];
If you want to read the file as an NSMutableDictionary, simply use:
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithContentsOfFile:@"/file/path"];
'program tip' 카테고리의 다른 글
virtualenvwrapper 명령이 작동하지 않습니다. (0) | 2020.11.06 |
---|---|
PHP에서 Microsoft 인코딩 따옴표를 바꾸는 방법 (0) | 2020.11.06 |
Twitter 부트 스트랩-클릭시 모달 내부의 텍스트 영역에 집중 (0) | 2020.11.06 |
Visual Studio 2012가 vs2010 솔루션을 변환하지 않습니까? (0) | 2020.11.06 |
ListView에서 스크롤 업 및 스크롤 다운 감지 (0) | 2020.11.06 |