我在 Swift 3.0 中工作,我在其中使用 Core Data 来存储信息。我在 NSManagedObject
中获取用户详细信息,因此为了显示我希望它在 NSMutableArray
中转换的数据,但它显示运行时错误,但它与NSArray
我正在努力寻找这个错误,但没有找到确切的问题。
我们将不胜感激任何形式的帮助!!!
最佳答案
我们可以使用 NSMutableArray 可以执行的“Array”执行所有操作。
let strConstant = " Wolverine"
let birthDate = "17/5/91"
let birthYear = 1991
let currentyear = 2016
假设上面是我们需要在 Swift3.0 中使用“Array”和“NSMutableArray”处理的值
所以下面我创建了一个基本操作,您可以使用 Array 和 NSMutableArray 执行这些操作,并且在这两种情况下输出都是相同的。
您可以将编码部分放在任何 playground 中,并且您可以指定哪一行执行哪项任务。
Handle operation with Swift Array :
var newRatingList = [Any]()
newRatingList.append(strConstant)
newRatingList.append(birthDate)
newRatingList.append((currentyear - birthYear))
newRatingList.last
newRatingList[1] = "18/5/91"
newRatingList
Handle operation with NSMutableArray :
var mutableArray = NSMutableArray()
mutableArray.add(strConstant)
mutableArray.add(birthDate)
mutableArray.add((currentyear - birthYear))
mutableArray.lastObject
mutableArray.replaceObject(at: 1, with: "18/05/91")
要了解数组的工作原理,您还可以引用以下链接: https://makeapppie.com/2016/06/23/how-to-use-arrays-in-swift-3-0/
现在与你的问题相关,考虑这是一个例子
var locations = [Locations]() // Where Locations = your NSManaged Class
var fetchRequest = NSFetchRequest(entityName: "Locations")
locations = context.executeFetchRequest(fetchRequest, error: nil) as [Locations]
// Then you can use your properties.
for location in locations {
print(location.name)
}
在上面的示例中,您将获得位置的 Swift Array。因此,通过应用 For-in 循环,您可以获得 Individual 属性,如果您想将其转换为数组,那么您可以这样做,
var a = NSMutableArray()
for location in locations {
var dictionary = [String:AnyObject]()
dictionary["name"] = location.name
dictionary["location"] = location.location
a.addObject(dictionary)
}
最后,你会得到“一个”包含字典的 NSMutableArray。
希望对您有所帮助!
关于ios - 将 Swift._SwiftDeferredNSArray' (0x1096d26b8) 获取到核心数据中的 'NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40105687/