在核心数据中获取 Swift._SwiftDeferredNSArray' (0x1096d26b8) 到 'NSMutableArray
Posted
技术标签:
【中文标题】在核心数据中获取 Swift._SwiftDeferredNSArray\' (0x1096d26b8) 到 \'NSMutableArray【英文标题】:getting Swift._SwiftDeferredNSArray' (0x1096d26b8) to 'NSMutableArray in Core Data在核心数据中获取 Swift._SwiftDeferredNSArray' (0x1096d26b8) 到 'NSMutableArray 【发布时间】:2016-10-18 10:23:14 【问题描述】:我正在使用 Swift 3.0 并使用 Core Data 来存储信息。我在NSManagedObject
中获取用户详细信息,因此为了显示数据,我希望它在NSMutableArray
中转换,但它显示运行时错误,但它与NSArray
一起工作正常
我正在努力寻找这个错误,但没有得到确切的问题。
任何形式的帮助都将不胜感激!!!
【问题讨论】:
为什么要在 NSMutableAraay 中转换?您可以使用 swift 的“数组”来实现。 您好,其实我是 swift 新手,来自 Objective C 背景,所以我不了解这个“Array swift”的用法 【参考方案1】:我们可以使用 NSMutableArray 可以做的“Array”来执行所有的操作。
let strConstant = " Wolverine"
let birthDate = "17/5/91"
let birthYear = 1991
let currentyear = 2016
假设上面是我们需要在 Swift3.0 中使用“Array”和“NSMutableArray”处理的值
所以下面我创建了一个基本操作,你可以使用 Array 和 NSMutableArray 来执行,在这两种情况下输出都是一样的。
你可以把 Coding 部分放在任何 Playground 中,你可以在哪一行执行哪一个任务。
使用 Swift Array 处理操作:
var newRatingList = [Any]()
newRatingList.append(strConstant)
newRatingList.append(birthDate)
newRatingList.append((currentyear - birthYear))
newRatingList.last
newRatingList[1] = "18/5/91"
newRatingList
使用 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 数组 位置。因此,通过应用 For-in 循环,您可以获得单个属性,如果您想将其转换为数组,那么您可以执行以下操作,
var a = NSMutableArray()
for location in locations
var dictionary = [String:AnyObject]()
dictionary["name"] = location.name
dictionary["location"] = location.location
a.addObject(dictionary)
最后,你会得到一个包含字典的“a”NSMutableArray。
希望对你有帮助!
【讨论】:
非常棒且详细的答案,我非常需要,感谢您的帮助@Wolverine @priyanshu Welcome..请将其标记为答案,它已解决您的疑问。谢谢。以上是关于在核心数据中获取 Swift._SwiftDeferredNSArray' (0x1096d26b8) 到 'NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章
NSSortDescriptor 从 Swift 4 的核心数据中获取密钥