我想传递Note
类的数组作为函数的参数。
Note
是RLMObject
的子类,因此在我看来应该没问题。
private var notesSection = [Note]()
func add(inout sectionArray: [RLMObject]){
}
func addNote(){
//Here is an error: Cannot invoke 'add' with an argument list
//of type '(sectionArray: inout [(Note)])'
add(sectionArray: ¬esSection)
}
我也尝试过施放数组:
let castedArray = notesSection as! [RLMObject]
但在这种情况下我收到一个错误:
'RLMObject'不是'Note'的子类型
答案 0 :(得分:0)
Swift对类型严格。解决方案应该很简单。
如果您维护的数组仅包含Note
,请确保添加Note
个对象。如果您使用RLMObject
维护数组,请确保只添加RLMObject
。
如果您的数组包含不同类型的对象,请使用AnyObject
。
我认为您的案例的最小努力是将[RLMObject]
用于Note
数组,然后在需要使用Note
时进行转换。
最后,您似乎正在构建数组以填充表视图。您的设置似乎相当笨拙,并没有利用表视图的datasource
机制。 IMO,您不需要嵌套数组的层次结构,特别是如果潜在的部分数量有限。如果您使用的是核心数据,请考虑使用NSFetchedResultsController
。