检查属性值时,'Int'不能转换为'Range <int>'

时间:2015-08-05 22:14:07

标签: ios swift if-statement core-data

我有一个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
  }

我不确定为什么会发生这种情况以及如何解决问题,有没有人能解决我想要做的事情?

2 个答案:

答案 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" }