Otomatik referans sayma ile birlikte iOS 4.3 & iOS 5'de çalışıyorum. Benim arayüzde bir NSDate nesnesi bildirmek:NSNumber'e dönüştürmek NSNumber MYSTERY
NSDate *fingerprintsDate;
Daha sonra, NSDate o set - bu değere sahip içinden ben beklediğiniz debugger kullanarak ve adım: Son olarak
fingerprintsDate = [NSDate date];
, ben deneyin
if (fingerprintsDate == nil || [fingerprintsDate timeIntervalSinceNow] > 6)
Ve tanınmayan seçici ile çöküyor orası: tarihten itibaren zaman olsun "2012-01-18 23: 07: 46,662 Netapporter [473: 707] - [NSCFNumber timeIntervalSinceNow]: tanınmayan seçici gönderilen örnek 0x194490"
ayıklayıcıya göre, sevgili NSDate okur: "fingerprintsDate = (NSCFNumber *) 0x194490 139" - Ben okur açıklama yazdırmak: "{value = 139,0000000000, type = kCFNumberFloat32Type}"
Başka bir şey yapmıyorum/parmak izi Kodda başka bir yerde bulun - ama bir şekilde bir NSNumer'a dönüşüyor ... Herhangi bir fikir nasıl durduracak?
Başka bir kod "arasında", bunu yapıyor (yani, tarihinizi yazarak). Biraz daha kod gönderebilir misin? – dasblinkenlight
Neden tarihin sıfır ya da 6'nın üzerinde olduğunu kontrol ettiniz? Bunu benim için şununla kontrol edin: if ([[myNum className] isEqualToString: @ "NSCFNumber"]) {NSLog: (@ "sayıdır)} – CodaFi
Burada gösterilen kodla ilgili bir sorun yok ama hatayı okuduktan sonra rapor, "timeIntervalSinceNow" yönteminin dönüş değeri yanlış yerde (parametre), gerçekte "- (NSTimeInterval) timeIntervalSinceNow" değerini döndürmeye çalıştığınız olabilir. – kulss