Swift2:返回可选类型对象

标签 swift swift2 option-type

我是 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
}

function in swift2

我该如何解决这个问题? swift2 中定义函数的“最佳实践”是什么?

谢谢


编辑 1

我已经尝试更改方法的签名,但错误仍然存​​在:

enter image description here

最佳答案

您应该问自己的问题是 getMuscles() 是否必须始终返回一个对象,或者它是否可以返回 nil。

通过将方法签名更改为 func getMuscles() -> BodyPart?, 您基本上是在声明该方法可能会返回 nil, 从而解决您的直接编译时间问题。

在那个特定的上下文中,因为你正在从 CoreData 中获取对象, 允许 getMuscles() 返回 nil 可能是明智的。

您定义函数的方式(它们是否返回可选项 ?)完全取决于调用代码。

关于Swift2:返回可选类型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33823842/

相关文章:

swift - 如何递增十六进制数

swift - AnyObject 到 [字符串 : [String: String]] crashes without error

ios - 在 View Controller 之间创建交互式幻灯片过渡

ios - *某些* iOS 8 版本中自定义导航项的内部不一致异常

Java 8可选如何定义NullPointerException的错误消息

java - 空字符串的 Optional 实现

ios - 在 UICollectionView 中显示一行 - Swift

iOS - float 单按钮

iphone - 当选择文本字段时将 View 移到键盘后面

ios - 为什么我收到警告 "Expression implicitly coerced from ' xx ?' to ' Any'”?