我有一个NSManagedObject
的子类,当用控制流语句检查实例的属性值是否为n时,我得到以下错误;
'Int'不能转换为'Range
我要做的是检查属性值是否有值,如果是,则创建该值的实例,(值类型是NSManagaedObject的另一个子类)。
子类:
class Items: NSManagedObject {
@NSManaged var index: NSNumber
@NSManaged var title: String
@NSManaged var folder: Folder
}
错误是在我的表视图中检查值时 - 我获取所有Items对象并强制转换为数组以显示在tableview中:
错误
var folder: Folder!
//Error occurs here
if self.items[indexPath!.row].folder != nil {
folder = self.items[indexPath!.row].folder
}
我不确定为什么会发生这种情况以及如何解决问题,有没有人能解决我想要做的事情?
答案 0 :(得分:0)
我使用obj-c,而不是Swift。什么是Folder对象?我找不到任何文件。
如果不了解有关该对象的更多信息,请尝试:
if self.items[indexPath!.row].folder {
folder = self.items[indexPath!.row].folder
}
如果文件夹不是nil,那应该可以。但是,你必须验证你认为nil文件夹的内容不会让你进入if语句。在不知道文件夹是什么的情况下,我不知道它是如何被视为一种条件。
答案 1 :(得分:0)
我通过将值添加到实例然后检查实例的值是否为nil来找到解决方案。仍然不确定为什么我收到原始错误。
var folder: Folder!
shelf = items[indexPath!.row].folder
if folder != nil { println"ok" }