我正在使用iOS 4.3 &具有自動引用計數的iOS 5。我在接口聲明的NSDate對象:NSDate變成NSNumber MYSTERY
NSDate *fingerprintsDate;
後來,我設置的NSDate - 使用調試器和步進通過它的價值,我期望:
fingerprintsDate = [NSDate date];
最後,我嘗試從日期獲取時間:
if (fingerprintsDate == nil || [fingerprintsDate timeIntervalSinceNow] > 6)
而這正是它無法識別的選擇崩潰了:「2012-01-18 23:07:46.662 Netapporter [473:707] - [NSCFNumber timeIntervalSinceNow]:無法識別的選擇發送到例0x194490"
根據調試器,親愛的NSDate記載: 「fingerprintsDate =(NSCFNumber *)0x194490 139」 - 當我打印描述記載: 「{值= 139.0000000000,類型= kCFNumberFloat32Type}」
我沒有做任何其他事情w/fingerprintsDate在代碼中的任何地方 - 但不知何故它變成了NSNumer ...任何想法如何阻止它?
必須有一些其他代碼「在之間」這樣做(即寫作你的日期)。你能發佈更多的代碼嗎? – dasblinkenlight
你爲什麼要檢查日期是否爲6或以上?檢查它是否適用於我:if([[myNum className] isEqualToString:@「NSCFNumber」]){NSLog:(@「is number)} – CodaFi
這裏顯示的代碼沒有問題,但是在閱讀bug報告可能是你試圖在錯誤的地方(參數)使用「timeIntervalSinceNow」方法的返回值,實際上是「 - (NSTimeInterval)timeIntervalSinceNow」返回浮點值 – kulss