2013-06-10 2 views
0

Я довольно новичок в работе с Plists и IOS. Я пытаюсь загрузить tableview записей, и я пытаюсь загрузить Tableview из папки моих документов в проекте. Он использовался для загрузки из пакета, а затем я указал на папку с документами. Я удалил plist из своего проекта и сохранил его в папке с документами, но получил ошибку копирования. Итак, просмотрите мой код и дайте мне некоторое представление о том, как загрузить из папки документов в моем приложении. Я запустил его в отладке и по-прежнему загружал только 5 записей из plist в комплекте, а не 7 записей, которые находятся в папке моих документов. Просто отметим, что после загрузки начального экрана записей tableView я беру опцию «+» наверху, чтобы загрузить пустой экран для загрузки другой записи, это я пишу в папку документа, и она работает, теперь я хочу отобразите эти изменения на Мастере. Я также не уверен, как обновить экран. Я немного прочитал «ViewDidLoad», но я не уверен, как использовать этот метод. Заранее спасибо.Почему моя загрузка Plist из пакета, а не библиотеки документов

С уважением,

NSLog(@"loading data"); 
    [email protected]"Accounts"; 
// NSString *accountFile = [[NSBundle mainBundle] pathForResource:@"Accounts2" ofType:@"plist"]; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentPath = [paths objectAtIndex:0]; 
    NSString *plistPath = [documentPath stringByAppendingPathComponent:@"Accounts2.plist"]; 
    accounts = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath]; 
    account = [accounts objectForKey:@"Account"]; 
    number = [accounts objectForKey:@"Number"]; 
    dueDay = [accounts objectForKey:@"DayDue"]; 
    minAmount = [accounts objectForKey:@"MinAmount"]; 
    balance = [accounts objectForKey:@"Balance"]; 

    NSLog(@"data loaded"); 
+0

У вас есть plist в вашем приложении и вы загружаете данные из него. Где вы сохранили данные в plist в каталоге документов приложения? – Zen

+0

Это вопрос, который продолжает возвращаться. Вы можете обратиться к аналогичному [вопросу] (http://stackoverflow.com/q/15607725/767730) и к [answer] (http://stackoverflow.com/a/15608165/767730). Он делает то же самое. Просто разница в том, что он сохраняет «заметки» вместо вашей «учетной записи». – Anupdas

+0

Благодарим за отзыв. Я уверен, что вопрос задают много, и для тех из нас, кто понимает программирование, это немного запутывает то, что вы читаете с одного места и обновляете другое. –

ответ

0

Первых общих вещами, которые, не имея plist в пачке, как скопировать их в каталог документов.? поэтому, пожалуйста, храните ваш файл plist это пакет, а затем скопировать и каталог документа, как сильфона код: -

BOOL success; 
NSError *error; 

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"yourPlistName.plist"]; 

success = [fileManager fileExistsAtPath:filePath]; 
if (success) return; 

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingFormat:@"yourPlistName.plist"]; 
success = [fileManager copyItemAtPath:path toPath:filePath error:&error]; 

if (!success) { 
    NSAssert1(0, @"Failed to copy Plist. Error %@", [error localizedDescription]); 
} 

и вы можете получить этот Plist файл, используя этот сильфон строку кода: -

NSString *path = filePath; 
NSMutableDictionary *plistdictionary = [[NSMutableDictionary alloc]initWithContentsOfFile:path]; 

вам может напрямую получить файл plist из Resource (NSBundle), например, следующий код: -

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"yourPlistName" ofType:@"plist"]; 
NSMutableDictionary *plistdictionary = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath]; 
+0

Это именно то, что я искал, спасибо! –

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