2016-05-04 2 views
1

У меня есть файл plist в моем приложении, который в виде таблицы загружает его объект. Мне нужно сохранить строку, когда пользователь набирает текст в textfield и нажимает кнопку сохранения, вот мой код, журнал показывает мне правильную строку, но таблица не перезагружается, а plist ничего не добавляет!Проблема с добавлением строки в файл plist

 NSString *rootPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *plistPath=[rootPath stringByAppendingPathComponent:@"users.plist"]; 
NSMutableDictionary *plist_dict=[[NSMutableDictionary alloc]initWithContentsOfFile:plistPath]; 

if(plist_dict==nil) 
{ 
    plist_dict =[[NSMutableDictionary alloc]init]; 
} 
[plist_dict setObject:_username.text forKey:@"username"]; 

[plist_dict writeToFile:plistPath atomically:YES]; 


[_tableView reloadData]; 

А вот мой файл по умолчанию PLIST:

<plist version="1.0"> 
<dict> 
    <key>username</key> 
    <array> 
     <string>Instagram</string> 
    </array> 
</dict> 
</plist> 
+0

Проверьте и сообщите возвращаемое значение из '[NSArray writeToFile: atomically:]', чтобы узнать, является ли это проблемой. – trojanfoe

+0

@trojanfoe Вы проверили бы мой отредактированный Q? –

+0

Я думаю, что код раньше был в порядке; запись plist как массив в порядке. Однако вы должны проверить, что 'writeToFile:' возвращает и записывает запись журнала в случае сбоя, чтобы сузить место, откуда возникла ошибка. – trojanfoe

ответ

0
NSString *rootPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *plistPath=[rootPath stringByAppendingPathComponent:@"appSetting.plist"]; 
NSMutableDictionary *plist_dict=[[NSMutableDictionary alloc]initWithContentsOfFile:plistPath]; 

if(plist_dict==nil) 
{ 
    plist_dict =[[NSMutableDictionary alloc]init]; 
} 
[plist_dict setObject:[NSNumber numberWithBool:status] forKey:@"isLoggedIn"]; 

[plist_dict writeToFile:plistPath atomically:YES]; 

использовать этот код. он работает для меня. надеюсь, это поможет вам.

+0

ничего не добавляет! У меня нет никакого «ключа» в моем plist –

+0

вы должны использовать ключ в противном случае, как получится значение –

+0

Я просто добавляю ключ, но все равно не работает! проверить мой отредактированный вопрос –

Смежные вопросы