2016-04-13 16 views
0

Sadece anlayamadığım bir sözdizimi sorunu yaşıyorum.Swift Temel Veri Değişken Sayısı

public func getLatestDate()-> NSDate? { 

    var request = NSFetchRequest() 
    var entity = NSEntityDescription.entityForName("Event", inManagedObjectContext: self.managedObjectContext) 

    request.entity = entity 

    let sortDescriptor = NSSortDescriptor(key: "timeStamp", ascending: false) 
    let sortDescriptors = [sortDescriptor] 

    request.sortDescriptors = sortDescriptors 

    var error: NSError? = nil 

    do { 
     let results = try self.managedObjectContext.executeFetchRequest(request) 
    } catch { 
     fatalError("Failed to fetch employees: \(error)") 
    } 

    var date: NSDate? 
    if results != nil { 
     let managedObject: NSManagedObject = results![0] as NSManagedObject 
     date = managedObject.valueForKey("timeStamp") as? NSDate 
    } 

    return date 
} 

sorun if results != nil ve aşağıdaki satırda results bir atma olmasıdır: Burada snippet'tir, geri güçlü Swift zemin yok, bu yüzden cevap kolay olacak Gözat (umarım.) Yani hata belirten: ait

kullanın çözülmemiş tanımlayıcının 'sonuçları'

Bu sorunu nasıl çözebilirim?

Teşekkür ederiz.

-Matt

cevap

1

Burada results ilan ediyoruz:

do { 
    let results = try self.managedObjectContext.executeFetchRequest(request) 
} catch { 
    fatalError("Failed to fetch employees: \(error)") 
} 

Yani onu bir do-catch blok içinde yapılıyor görebilirsiniz. Bu, onu kullanmaya çalıştığınız yerde tanımlandığı alanın dışında olduğu anlamına gelir, bu yüzden hiç göremez. if results != nil'a geldiğinizde, zaten kapsam dışı bırakıldı ve gitti. Gavin ilaveten

0

: Bu nedenle nedenini çalışacak, thar Gavin

söz