IOS: проверка файла plist

#xcode #ios #plist #nsbundle

#xcode #iOS #список #nsbundle

Вопрос:

У меня есть этот код: для симулятора написать NSMutableArray в plist

  NSString *path = [[NSBundle mainBundle] pathForResource: @"Array" ofType:@"plist"];

if([Array writeToFile:path atomically: YES]){
    NSLog(@"write succesful");}
else {
    NSLog(@"write failed");
}
  

но как я могу проверить, действительно ли список файлов пуст?

Комментарии:

1. у вас возникли проблемы с записью файла? или вы хотите это прочитать?

Ответ №1:

Запишите файл.

 [[NSFileManger defaultManager] createFileAtPath:path contents:plistData withAttributes:attributesDictionary];
  

Проверьте файл на наличие массива.

 NSDictionary *infoDictionary = [NSDictionary dictionaryWithContentsOfFile:path];
if ([infoDictionary count] == expectedIntegerValue) {
  NSLog(@"Success");
  if ([infoDictionary objectForKey:@"ARRAY_KEY"]) {
    NSLog(@"Found the array!");
  } else {
    NSLog(@"No Array Found.");
  }
} else {
  NSLog(@"Fail");
}
  

если вы просто хотите узнать, есть ли какие-либо ключи [Количество в справочнике] > 0.

Комментарии:

1. Я хочу точно знать, как я могу записать массив в файл plist и проверить, есть ли внутри этого файла массив, но НЕ для симулятора.

2. ой, блин, забыл код для записи в файл, которого нет в основном пакете. Одну минуту.

3. это не clare… Можете ли вы написать все, что мне нужно?

Ответ №2:

Хотя этот код работает в симуляторе iOS, вы не сможете выполнять запись в свой пакет приложений на устройствах iOS.

Комментарии:

1. Вероятно, вы захотите выполнить запись в папку documents: [[[NSFileManager defaultManager] URLsForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject]