我将Entity 经度设置为double并创建NSManagedObject子类。在properties.h中,我获得了经度
@property (nonatomic) double longitude;
然后错误跳出
分配到' double'来自不兼容的类型' NSNumber *'
在下面一行
photo.longitude=@([photoDictionary[FLICKR_LONGITUDE] doubleValue]);
在我将代码更改为
之前,事情并没有好转@property (nonatomic, retain) NSNumber * longitude;
我对这些感到困惑。
任何建议都会令人感激。
答案 0 :(得分:0)
NSNumber是NSValue的子类,它提供任何C标量的值 (数字)类型。它定义了一组专门用于设置的方法 并将值作为有符号或无符号的char,short int,int, long int,long long int,float,或double或BOOL。
即。 NSNumber
是一个封装原始值(例如你的double
)的类,并提供面向对象的接口(以及其他内容)。
您要做的是将NSNumber
类型的对象分配给类型为double
的属性(因此显示错误)。
但是,使用此代码......
photo.longitude=@([photoDictionary[FLICKR_LONGITUDE] doubleValue]);
...您通过调用返回的double
上的photoDictionary
从doubleValue
获得NSNumber
,然后使用NSNumber
重新包装NSNumber
@(...)
字面值:[photoDictionary[FLICKR_LONGITUDE] doubleValue]
。如果您删除文字并直接将photo.longitude
直接分配给class CalendarEvent extends Model{
public function conflicts()
{
return $this->hasMany(CalendarEvent::class)
->where('calender_event_type','=', $this->calendar_event_type);
}
}
,那么您应该没问题。