2016-04-12 17 views
0
do { 
    let results = try context.executeFetchRequest(request) 

    for result in results as! [NSManagedObject] { 
     var savepassword = result.valueForKey("savePassword")!  
    } 
} catch { 

} 

// what I want is to be able to access the variable out here 
// savepasword 

答えて

2

savePasswordをループ外に宣言する必要があります。クエリから複数のオブジェクトが返された場合、配列の最後のオブジェクトの値が返されることに注意してください。これは、またはあなたが

var savepassword : String? 

do { 
    let results = try context.executeFetchRequest(request) 

    for result in results as! [NSManagedObject] { 
     savepassword = result.valueForKey("savePassword") as? String  
    } 
} catch { 

} 

if let savepassword = savepassword { 
    // Do something with savepassword 
} 
+0

は 'result.valueForKey( "SAVEPASSWORD")は' 'STRING'にキャストしてはいけません欲しいものであってもなくてもよいですか? – Eendje

+0

はい、良いキャッチ – Paulw11

0
var any: Any 
do { 
    let results = try context.executeFetchRequest(request) 
    any = results 
} catch { 

} 
for result in any as! [NSManagedObject] { 
    var savepassword = result.valueForKey("savePassword")! 
} 
関連する問題