我是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
我试图更改该方法的签名,但错误仍然存在:

发布于 2015-11-20 12:29:03
您应该问自己的问题是,getMuscles()是否总是必须返回一个对象,或者它是否可以返回一个零。
通过将方法签名更改为func getMuscles() -> BodyPart?,您基本上是在声明该方法可能返回零,从而解决了您的立即编译时问题。
在特定的上下文中,因为要从CoreData中获取对象,所以允许getMuscles()返回零可能是明智的。
定义函数的方式(如果函数返回选项?,或者不返回)完全取决于调用代码。
发布于 2015-11-20 10:50:20
只需返回:
func getMuscles() -> BodyPart? { }发布于 2015-11-20 11:06:49
将方法签名更改为: func getMuscles() -> BodyPart?
但是,在调用此函数时,在展开返回值时要小心。
https://stackoverflow.com/questions/33823842
复制相似问题