我在类里面有一个方法:
func myFunc() -> Any?
{
let fetchRequest = NSFetchRequest(entityName: "Product")
fetchRequest.predicate = NSPredicate(format: "shopitem == %@", self.objectID)
fetchRequest.fetchLimit = 1;
do
{
fetchResults = try self.managedObjectContext!.executeFetchRequest(fetchRequest) as! [Product]
}
catch
{
fatalError("Fetching from the store failed")
}
if fetchResults.count > 0
{
return fetchResults.first
}
return nil
}
然后我在另一个类中调用这个方法。但是如何检查从中返回了什么对象:
let product = MyClass.myFunc() as! Product
cell.productTitleLabel.text = product.product_title
如果我的方法返回 nil,此代码将返回错误。
最佳答案
您可以使用条件类型转换来处理这种情况。 (引用 Type Casting ):
if let product = MyClass.myFunc() as? Product
{
cell.productTitleLabel.text = product.product_title
}
此外,如果您需要检查返回值的类型,您可以使用:
var product = MyClass.myFunc()
if product is Product
{
// Do stuff
}
关于ios - swift 函数返回对象或 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32977105/