[英]Double from CoreData returns very small number
我正在開發一個潛水應用程序,其中一項功能是將潛水的評級作為雙倍存儲到 CoreData 中。 界面應該能夠從 coredata 對象中檢索 double 值,然后在屏幕上顯示。 但是,我從代碼中得到的問題是對象返回的 double 非常小(e 的冪為 -315)。 我不知道為什么會這樣。
if let dives = self.diveSite?.logged_dives {
for dive in dives {
print("######### dive site info ########")
rating = Double(dive.rating) + rating
print(dive)
print("raw dive site rating is \(dive.rating)")
print("dive rating is \(rating)")
}
} else {
print("no logged_dives")
}
這是控制台上打印出來的內容......
######### dive site info ########
<ScubaDoo.DiveLog: 0x7fe9ea02cbc0> (entity: DiveLog; id: 0xd000000000180002 <x-coredata://2B6F1E6F-1EDA-4910-91FA-0593E05F9EB2/DiveLog/p6> ; data: {
current = nil;
depth = 0;
"dive_at" = "0xd000000000140000 <x-coredata://2B6F1E6F-1EDA-4910-91FA-0593E05F9EB2/DiveSite/p5>";
id = nil;
latitude = 0;
longitude = 0;
rating = 5;
"sea_condition" = nil;
temperature = 0;
time = nil;
weather = nil;
})
raw dive site rating is 5.35679601527854e-315
dive rating is 1.06203402623994e-314
dive site rating is 1.06203402623994e-314
swift 中的 DiveLog 對象如下。 我真的不知道這個。 在獲取評級屬性時似乎有些東西越界了?
import Foundation
import CoreData
extension DiveLog {
@NSManaged var time: NSDate?
@NSManaged var latitude: NSNumber?
@NSManaged var id: String?
@NSManaged var rating: NSNumber?
@NSManaged var depth: NSNumber?
@NSManaged var temperature: NSNumber?
@NSManaged var weather: String?
@NSManaged var current: String?
@NSManaged var sea_condition: String?
@NSManaged var longitude: NSNumber?
@NSManaged var dive_at: DiveSite?
}
不確定剛剛發生了什么,但我升級到 XCode 7.3,不知何故問題得到了解決。 我猜是 IDE 本身的問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.