Только что обновил мой XCode с 4.6 до 5, а вместе с ним и iOS7 SDK.Пустые массивы и iOS 7 SDK
Я заметил, что всех операции (например, Предикатные фильтры и т.д.) Я пытаюсь выполнить на пустом NSArray или NSMutableArray вызвать исключение (NSInvalidArgumentException) при запуске моего приложения в тренажере для любой прошивки 5.1 или IOS 7 (до сих пор пытается скачать iOS 6.1) Мои массивы создаются (так что они не Nil), но у них есть 0 записей.
Так что код, который раньше работал отлично в XCode 4.6, теперь сбой, и мне нужно добавить дополнительный IF, чтобы проверить, не удалось ли array.count == 0 выполнить эту строку кода во всем моем приложении. (Монументальное задание)
Когда я загружаю приложение (версию I, опубликованное с XCode 4.6) из AppStore на устройство iOS7, он работает нормально.
Кто-нибудь еще испытывает это?
Нет, все работает отлично в iOS 7, никаких монументальных переделок не требуется. Какие операции вы пытаетесь выполнить и как вы создаете свои массивы? Можете ли вы привести пример пары строк кода, которые терпят неудачу? Может быть, вы отправляете операции NSMutableArray в NSArray или что-то вроде этого? –
Можете ли вы показать одно из NSInvalidArgumentExceptions, которое вы видите? – bneely
Сбой на последней строке. Этот код работает в XCode 4.6.3. NSMutableArray, хранящийся в [defaults objectForKey: @ "Wards"], не является Nil. NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; NSData * userData = [defaults objectForKey: [NSString stringWithFormat: @ "% d", UserID]]; NSMutableDictionary * userDictionary = [[NSKeyedUnarchiver unarchiveObjectWithData: userData] mutableCopy]; NSArray * SelectedWards = [[NSArray alloc] initWithArray: [defaults objectForKey: @ "Wards"]]; –