У меня странная проблема, которая, вероятно, имеет простое решение, которое я просто не могу найти / выяснить.Любые идеи приветствуются.
У меня есть список свойств, который состоит из массива в качестве корневого объекта.Массив содержит пару словарей.
Приведенный ниже код показывает, как я пытаюсь загрузить данные plist в мой массив -
-(void)awakeFromNib{
NSString *plistPath = @"/Users/administrator/Desktop/WipeOut Winner!/Data.plist";
NSLog(@"Plist path is %@",plistPath);
if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) {
NSLog(@"File wasn't found");
}
tableDataArray = [[NSMutableArray alloc]initWithContentsOfFile:plistPath];
NSLog(@"array count is %lu",[tableDataArray count]);
}
А ниже находится файл plist -
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>root</key>
<array>
<dict>
<key>winner</key>
<string>Scott</string>
<key>personChosen</key>
<string>Female</string>
<key>winType</key>
<string>2 and 'Won' -3 pts.</string>
<key>Points</key>
<string>3</string>
</dict>
<dict>
<key>winner</key>
<string>Emily</string>
<key>personChosen</key>
<string>Male</string>
<key>winType</key>
<string>All The Way! -5 pts.</string>
<key>points</key>
<string>5</string>
</dict>
</array>
</dict>
</plist>
Файл plist найден в порядке.И я подтвердил, что мой корневой объект в plist является массивом (словарей).Мой счетчик массивов после этого вызова всегда увеличивается до нуля.
Во время попытки выяснить это, я изменил данные в своем plist на один NSDictionary вместо массива, содержащего словари.Затем я загрузил plist в NSDictionary, загрузил этот словарь в массив, и число массивов равнялось 1, как и ожидалось, так что я точно знаю, что все правильно подключено, что касается поиска, загрузки и т. Д. Plist.В другом тесте, вместо того, чтобы пытаться загрузить массив с данными plist, как показано ниже:
tableDataArray = [[NSMutableArray alloc]initWithContentsOfFile:plistPath];
Я обошел все элементы plist вместе и просто загрузил массив, как это было так:и это также изменило число массивов к единице, как и ожидалось.Поэтому я думаю, что моя проблема связана с этим
tableDataArray = [[NSMutableArray alloc]initWithContentsOfFile:plistPath];
, но я не могу понять, где.