2011-12-06 31 views

回答

16
BOOL hasFoo = [[myObject.entity propertiesByName] objectForKey:@"foo"] != nil; 
3

爲了提高OMZ的回答,您也應該檢查屬性是一個屬性(而不是一個名爲@ 「富」 的關係):

BOOL hasFoo = ([[myObject.entity propertiesByName] objectForKey:@"foo"] != nil 
&& ([[[myObject.entity propertiesByName] objectForKey:key] isKindOfClass:[NSAttributeDescription class]])) 
5

在迅速

let hasFoo = myObject.entity.propertiesByName.keys.contains("foo") 
1

夫特3.2 使用包含檢查從鍵陣列:

if managedObject.entity.attributeKeys.contains("yourKey") { 
    let value = managedObject.value(forKey: "youreKey") as! ClassName) 

} 

或使用IF-讓:

if let data = managedObject.value(forKey: "youreKey") { 
    let value = data as! ClassName 
}