2016-03-21 8 views
1

私はダイビングアプリケーションを作成していますが、その1つはダイビングの評価をCoreDataに倍精度で保存することです。インタフェースは、coredataオブジェクトからdouble値を取得し、画面に表示できる必要があります。しかし、私のコードから得た問題は、オブジェクトから返されたdoubleが非常に小さいことです(eは-315の累乗)。なぜこれが起こっているのか分かりません。ここでCoreDataのDoubleは非常に小さい数値を返します

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") 
     } 

は迅速でDiveLogオブジェクトは以下の通りです

######### 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 

...コンソールにプリントアウトされているものです。私は本当にこれについての手掛かりを持っていません。評価のプロパティを取得する間に何かが外れているようですか?

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? 

} 
+0

NSNumberを使用していることがわかりました。 Swift Doubleタイプを直接使用することができますか?また、私はあなたがrating.doubleValueでNSNumber値にアクセスする必要があると思います。直接アクセスすることはできません。 – VojtaStavik

+0

値はちょうど0であるはずです(それは妥当な近似値です)。 – DeFrenZ

+0

'rating'はオプションなので、' dive.rating! 'を印刷するとどうなりますか? –

答えて

1

何が起こったのかわかりませんが、私はXCode 7.3にアップグレードしましたが、何とか問題が修正されました。問題はIDE自体にあったと思いましたか?

関連する問題