Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将NSSet转换为NSMUTABLEARRY_Ios_Swift_Uitableview_Core Data - Fatal编程技术网

Ios 将NSSet转换为NSMUTABLEARRY

Ios 将NSSet转换为NSMUTABLEARRY,ios,swift,uitableview,core-data,Ios,Swift,Uitableview,Core Data,目前,我有一个名为Folder的NSManaged对象的子类,其属性名为item,类型为NSSet class Folder: NSManagedObject { @NSManaged var title: String @NSManaged var date: NSDate @NSManaged var item: NSSet func itemMutableArray() -> NSMutableArray { var mutableArray: NSMutableArr

目前,我有一个名为Folder的NSManaged对象的子类,其属性名为item,类型为NSSet

class Folder: NSManagedObject {

@NSManaged var title: String
@NSManaged var date: NSDate
@NSManaged var item: NSSet

func itemMutableArray() -> NSMutableArray {

    var mutableArray: NSMutableArray!

    mutableArray = [item.allObjects]

    return mutableArray

}
项目类别:

class Item: NSManagedObject {

@NSManaged var title: String
@NSManaged var date: NSDate
@NSManaged var completed: Bool
有人对我目前的错误有什么建议吗

这是我以前使用的函数,现在我想将NSSet转换为NSMUTABLEARRY

func itemArray() -> [Item] {
    let sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
    return item.sortedArrayUsingDescriptors([sortDescriptor]) as! [Item]
}

使用Swift类型,它们更通用

这将NSSet放入一个数组(
var
是可变的),并按属性
date

@NSManaged var title: String
@NSManaged var date: NSDate
@NSManaged var item: NSSet

var sortedItemArray : Array<Item> {
  var array = item.allObjects as! [Item]
  return sorted(array) {$0.date < $1.date }
}
@NSManaged var title:String
@NSVAR托管日期:NSDate
@NSVAR管理项:NSSet
Marray的变量:数组{
var array=item.allObjects as![item]
返回排序(数组){$0.date<$1.date}
}

.copy始终记住获取内容的副本()。在此之后,如果仍然出错,则与数组无关。抱歉,我是iOS开发新手,不确定您所说的使用复制方法是什么意思。allKeys不会创建数组(除非Swift创建数组,这通常在您更改内容时发生),您会得到一个指针。在大多数语言中,变量只指向内存。换句话说,在获得克隆之前,您没有自己的。所有密钥。感谢您的建议,不幸的是,这并不能解决问题problem@JKSDEV问题是如何从NSSet转换为NSMUTABLEARRY。我想问题已经回答了你改变了答案,不确定到底发生了什么。我的问题中确实包含了Item类。现在我来试试你的建议。在我的类外语句中使用时出现错误“表达式不允许在顶层”,在括号中使用时出现错误“预期声明”。我想问题分为两部分。您回答了如何转换为NSMutableArray,并帮助我创建了一个新函数,因此我们将为您提供答案。将针对表视图中的错误发布新问题。我真的很感谢你花时间在(Y)中,我喜欢你的建议,但不幸的是,我得到了以下错误“无法为接受“[(项],(,-)->”类型参数列表的“排序”找到重载”什么类型是
Item
?Item是NSSet类型,是nsmanagedObject的一个子类,具有string、bool和date三个属性。文件夹与项目具有一对多关系。
@NSManaged var title: String
@NSManaged var date: NSDate
@NSManaged var item: NSSet

var sortedItemArray : Array<Item> {
  var array = item.allObjects as! [Item]
  return sorted(array) {$0.date < $1.date }
}