Отправка «double» в параметр несовместимого типа «id _Nullable»

#ios #objective-c #xcode

Вопрос:

Поэтому я не могу понять эту ошибку.

У меня есть объект с этими свойствами

 @property (nonatomic, readwrite) double width;
@property (nonatomic, readwrite) double height;
 

Когда я создаю NSSdictionary, добавьте их в него

    if (config.width) {
        properties[@"height"] = config.height;
    }
    if (config.height) {
        properties[@"height"] = config.height;
    }
 

Я получаю следующую ошибку

Отправка «double» в параметр несовместимого типа «id _Nullable»

Если я прав, тип id эквивалентен любому? что включает double в себя . Кроме того, я устанавливаю значение, если оно существует?

Ответ №1:

Если я прав, идентификатор типа эквивалентен любому? которая включает в себя двойное

Но ты не прав. id эквивалентен любому объекту (подклассу NSObject). double это не объект, это примитив.

Комментарии:

1. Еще раз я предлагаю вам apeth.com/iOSBook/ch01.html . Это бесплатное чтение, и оно учит вас объективному-С. Разве обучение не было бы лучше, чем избиение?

Ответ №2:

На всякий случай, если кто-нибудь захочет знать, как мне удалось это исправить, я сделал

[NSNumber numberWithDouble:config.height];