将“double”发送到不兼容类型“id _Nullable”的参数

Posted

技术标签:

【中文标题】将“double”发送到不兼容类型“id _Nullable”的参数【英文标题】:Sending 'double' to parameter of incompatible type 'id _Nullable' 【发布时间】:2021-07-13 23:58:24 【问题描述】:

所以我无法理解这个错误。

我有一个具有这些属性的对象

@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;
    

我收到以下错误

向不兼容类型“id _Nullable”的参数发送“double”

如果我是正确的,输入id 是否等同于任何?其中包括double。另外,如果存在,我正在设置值?

【问题讨论】:

【参考方案1】:

如果我是正确的,类型 id 是否等同于任何?其中包括双

但你是正确的。 id 等价于任何 object(NSObject 子类)。 double 不是对象;这是一个原始的。

【讨论】:

我再次为您提供apeth.com/iosBook/ch01.html。它是免费阅读的,它教你 Objective-C。学习不比摔跤更好吗?【参考方案2】:

以防万一有人想知道我是如何修复它的,我做了

[NSNumber numberWithDouble:config.height];

【讨论】:

以上是关于将“double”发送到不兼容类型“id _Nullable”的参数的主要内容,如果未能解决你的问题,请参考以下文章

将“void”发送到不兼容类型“UIViewController”的参数

initWithStyle:CGRectZero 将“const CGRect”发送到不兼容类型的参数

将 uiviewcontroller strong 发送到不兼容类型 id 的参数的警告

在 NSManagedObject 上设置双属性的值

类型化消息的一种设计模式

将数据写入 Azure 数据块中的 Delta Lake 时出现问题(检测到不兼容的格式)