Как считать структуру данных из .plist файла в NSArray

  • E2 : =UNIQUE(FILTER(A2:A, A2:A<>""))
  • F2 и перетащите вниз: =COUNTIF(ARRAYFORMULA(DAYS(FILTER(C$2:C,$A$2:$A=$E2),FILTER(B$2:B,$A$2:$A=$E2))),"<=7")
  • G2 и перетащите вниз: =COUNTIF(ARRAYFORMULA(DAYS(FILTER(C$2:C,$A$2:$A=$E2),FILTER(B$2:B,$A$2:$A=$E2))),">7")
  • 0

49
задан iDeveloper 5 April 2016 в 02:49
поделиться

4 ответа

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"league" ofType:@"plist"];
contentDict = [NSDictionary dictionaryWithContentsOfFile:plistPath];

Этот ответ правильный - вы уверены, что ваш файл находится в приложении? Вы добавили его в свой проект и проверили, копируется ли он в ваш пакет приложений? Если нет, то, возможно, файл не был добавлен к цели, которую вы строите, что легко сделать, особенно если у вас несколько целей.

121
ответ дан Kendall Helmstetter Gelner 7 November 2019 в 11:25
поделиться

Кендалл прав.

По моему опыту, вам нужно добавить свой файл в папку «Ресурсы» в xcode.

2
ответ дан 7 November 2019 в 11:25
поделиться

Для полноты картины Кендалл и Бентфорд совершенно правы. Однако в моем примере contentArray был свойством, и к концу метода он выходил из области видимости, потому что arrayWithContentsOfFile создает автоматически высвобождаемый объект.

Чтобы сделать это правильно, мне нужно было сделать 3 вещи:

  1. поместите файл в папку ресурсов.

  2. правильно назовите файл (был league.plist вместо league.plist)

  3. прочитайте файл, используя [[NSArray alloc] initWithContentsOfFile: plistPath) ];

третья часть создает выделенный NSArray, который не освобождается при выходе из области действия этой функции ... конечно, это необходимо было освободить в функции dealloc.

2
ответ дан 7 November 2019 в 11:25
поделиться

Просто добавлю. У меня была та же проблема, и предложенное решение помогло мне решить проблему, однако я не уверен, действительно ли я использовал точное решение. В моем случае проблема заключалась в том, что файл .plist был добавлен в другую цель (за секунду до этого была добавлена ​​новая цель). Поэтому решением было .plist> Get Info> Targets, и убедитесь, что он добавлен в правильную цель, чтобы он был скопирован на устройство при установке. Черт возьми, если бы я понял это достаточно быстро, я бы сэкономил много времени. Надеюсь, это тоже поможет. С уважением!

0
ответ дан 7 November 2019 в 11:25
поделиться