我是 swift2 世界的新手,目前我正在为一个简单的函数而苦苦挣扎:
// Get all moves for the first category
func getMuscles() -> BodyPart {
let bpart:BodyPart?
if let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext {
do{
let fetchRequest = NSFetchRequest(entityName: "BodyPart")
let fetchResults = try managedObjectContext.executeFetchRequest(fetchRequest) as! [BodyPart]
bpart = fetchResults[0]
} catch let error as NSError {
print(error)
bpart = nil
}
}
return bpart
}
我该如何解决这个问题? swift2 中定义函数的“最佳实践”是什么?
谢谢
编辑 1
我已经尝试更改方法的签名,但错误仍然存在:
最佳答案
您应该问自己的问题是 getMuscles()
是否必须始终返回一个对象,或者它是否可以返回 nil。
通过将方法签名更改为 func getMuscles() -> BodyPart?
,
您基本上是在声明该方法可能会返回 nil,
从而解决您的直接编译时间问题。
在那个特定的上下文中,因为你正在从 CoreData 中获取对象,
允许 getMuscles()
返回 nil 可能是明智的。
您定义函数的方式(它们是否返回可选项 ?
)完全取决于调用代码。
关于Swift2:返回可选类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33823842/