Intereting Posts
Как динамически изменять xib-файлы Inteface Builder, написав код Objective-C? Значок никогда не очищается как передавать данные в Tbxml в iphone Как получить значения атрибутов из xml createCGImage: fromRect: занимает слишком много памяти на iPhone 4 (iOS 7)? Экран заставки iOS появляется, когда приложение перезагружается из фона Панель навигации скрывается при прокрутке и прокрутке Как сохранить объект MKOverlay в файл для последующего получения Событие изменения значения UIDatePicker не запускается, когда значение изменяется в первый раз Как установить значение заголовка рефератора для запроса UIWebView UIAlertController дает ошибку Как вручную настроить ориентацию устройства при закрытии портлета развертывания приложения? Как установить автоматическую высоту для UITableView? iOS: рисование на CGContext в конечном итоге размывается Swift: проблема с приращением Int внутри строки

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

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

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"];