2012-03-27 39 views
4

我試圖在我的應用程序上實現地圖功能。但是,我希望將經緯度從存儲在覈心數據中的對象傳遞到地圖中。不過,我在啓動應用程序時遇到了在對象上設置初始值的問題。到目前爲止,我已經嘗試了兩種不同的方式,我收到每錯誤「發送「雙到不兼容類型的參數‘身份證’。任何幫助將是非常讚賞。在NSManagedObject上設置雙重屬性的值

NSManagedObject *room = [NSEntityDescription insertNewObjectForEntityForName:@"Room" inManagedObjectContext:context]; 

    double myLatitude = -1.228087; 
    double myLongitude = 52.764397; 

    [room setValue:@"H001" forKey:@"code"]; 
    [room setValue:@"This is a description" forKey:@"roomDescription"]; 
    [room setValue:myLatitude forKey:@"longitude"]; 
    [room setValue:myLatitude forKey:@"latitude"]; 

回答

12

NSManagedObject屬性必須是對象,但double是一個原始C類的解決方法是。將雙打包裝在0中:

[room setValue:[NSNumber numberWithDouble:myLongitude] forKey:@"longitude"]; 
[room setValue:[NSNumber numberWithDouble:myLatitude] forKey:@"latitude"]; 
+0

非常感謝,我知道這是沿着他們的線,但不知道如何設置它使用雙。 – dmeads89 2012-03-27 09:06:31

2

你應該換你兼作的NSNumber:

[NSNumber numberWithDouble:myDouble] 

NSManagedObject的setValue:forKey:需要一個id爲它的值的兩倍是一個原始

0

This answer告訴你如何存儲核心數據的浮動。這裏是雙重的

[room setValue:[NSNumber numberWithDouble:myLatitude] forKey:@"latitude"];