Intereting Posts
Swift – открыть Google Карты с URL-адресом iOS: как разместить элемент управления в центре родительского контейнера? как добавить щепотку и увеличить изображение на uiwebview – iphone Как проверить тип подключения к Интернету ios Сохранить изображение из сканера штрих-кода iOS 7 Что делать, когда .h-файл пуст в объекте c? Xcode, первый ответчик Использование встроенных изображений UITabBarItem на раскадровке Выбор песни и воспроизведение из библиотеки музыкальных приложений – Swift 2.0 If-Modified-Since запрос в iOS Установка текста UILabel не работает Не выполняется запрос SQLite Слабое я против себя при использовании замыкания, определенного быстрым в объективе c Как сделать снимок и сохранить его одновременно (swift3) ReSwift – как справляться с изменениями состояния, которые зависят от старого состояния, а также нового состояния в представлении

Почему я получаю предупреждение от компилятора?

Я получаю предупреждение о компиляторе при использовании следующего кода:

for(int i=0; i<[mutableTempArray count]; i++){ //... [tempInfoDictionary setValue:i forKey:@"tag"]; //... } 

Предупреждение:

прохождение аргумента 1 из 'setValue: forKey:' делает указатель из целого без литья

Что я здесь делаю неправильно?

Коллекции в Objective-C могут содержать только объекты , поэтому вам нужно обернуть i в объект NSNumber .

i сам является примитивным типом, а не объектом, поэтому он не может быть помещен в объект коллекции.

Первый аргумент для setValue:forKey: ожидается, будет иметь тип указателя, который сам по себе явно не является.

Я предлагаю использовать метод setObject:forKey: в NSDictionary вместо setValue:forKey: потому что он утверждает ваши намерения лучше. Вы не только сохраняете значение , но и сохраняете объект

 [tempInfoDictionary setObject:[NSNumber numberWithInt:i] forKey:@"tag"]; 

Вы пытаетесь поместить int в массив объектов, но он ожидает id то есть указателя. Попробуйте [tempInfoDictionary setValue:[NSNumber numberWithInt:i] forKey:@"tag"];