안녕하세요 완벽하게 작동하는 다음 코드는, 그것은 PLIST 및 할당을 찾아이 NSDictionary
내로 NSArray
불리는 landingSites. 유일한 문제는 사용자가 사이트를 추가 할 수 있기를 원하므로 다음 대신 사용자 문서에 Plist를 저장해야합니다 NSBundle
.
plistPath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
NSMutableDictionary *newDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
dictionaryKeys = [newDictionary allKeys];
self.landingSites = [dictionaryKeys sortedArrayUsingSelector:@selector(compare:)];
self.dictionaryFromPlist = newDictionary;
[Picker selectRow:0 inComponent:0 animated:NO];
for(NSString *parent in dictionaryKeys)
{
NSDictionary *parentData = [dictionaryFromPlist objectForKey:parent];
NSArray *child = [parentData objectForKey:@"Name"];
NSLog(@"%@", child);
}
지금까지 아래 코드를 생성했지만 프로그램을 실행할 때마다 if 문은 plist가 사용자 문서에 복사되지 않은 것처럼 항상 실행됩니다. 또한 NSDictionary
위에서 한 것처럼 LandingSites 배열에 내용을 첨부하는 방법을 모릅니다 . 도와주세요
(void) viewDidLoad {
[super viewDidLoad];
NSError *error;
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"Data.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:path]) {
NSLog(@"copying database to users documents");
NSString *pathToSettingsBundle = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
[fileManager copyItemAtPath:pathToSettingsBundle toPath:path error:&error];
}
else{
NSLog(@"users database already configured");
}
NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask,YES);
NSDocumentationDirectory
잘못되었습니다. 당신이 찾고있는 NSDocumentDirectory
나 NSLibraryDirectory
.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다