Swift'de Temel Verileri kullanırken hesaplanan özniteliklerin uygulanmasıyla ilgili herhangi bir öneri var mı? oluşturulan ManagedObject sınıfı ile CoreData Hızlı ve geçici özellik alıcıları
, ben getter geçersiz kılmak için çalıştı ama ben hatayı alıyorum: Bir geçici (hesaplanan) özellik için getter geçersiz kılamaz ima'NSManaged' not allowed on computed properties
.
Aşağıdaki kod örneğinde, modelimde geçici bir öznitelik olarak dateDue
tanımlanmıştır.
Lütfen @NSManaged satırlarının Xcode tarafından oluşturulduğunu unutmayın - bana eklenmedi.
@NSManaged var timeStamp: NSDate
@NSManaged var dateDue: String {
get {
self.willAccessValueForKey("dateDue")
var ddtmp = self.primitiveValueForKey("dateDue") as String?
self.didAccessValueForKey("dateDue")
if (ddtmp == nil)
{
let calendar = NSCalendar.currentCalendar()
let components = calendar.components((NSCalendarUnit.YearCalendarUnit | NSCalendarUnit.MonthCalendarUnit) , fromDate: self.timeStamp)
ddtmp = "\(components.year * 1000 + components.month)"
self.setPrimitiveValue(ddtmp, forKey: "dateDue")
}
return ddtmp!
}
}
Yönetilen nesne modelindeki bir özniteliktir. Genişletmek için, elma örnek programlarından biri tarafından kullanılan bir tekniği kopyalamaya çalışıyorum - ancak elma örneği Objectcode C - aslında Xcode (ana detay uygulama) teslim şablonunda yazılmıştır. –
Evet ama ObjC, 'NSManaged' işlevini yerine getirmiyor - eğer altta yatan özelliği sarmaya çalışıyorsanız, burada @ NSManaged' kullanmamalısınız. '@ NSManaged' derleyiciye, mülkiyet uygulamasının çalışma zamanında geç sağlandığını söyler. Uygulamayı açıkça sağlarken '@ NSManaged' kullanımı bir çelişkidir. – iluvcapra
Tamam teşekkürler. NSManaged öğesini kaldırmayı tekrar edeceğim. Nasıl yapılacağını anladım :) –