Swift:如何附加到 NSObject 数组?
Posted
技术标签:
【中文标题】Swift:如何附加到 NSObject 数组?【英文标题】:Swift: How to Append to an NSObject Array? 【发布时间】:2014-12-08 06:13:10 【问题描述】:我研究了 *** 和 Google,并查看了大多数 *** Swift 示例,但我的问题的解决方案仍然难以捉摸。我有需要在 TableView 中显示的带有 userName 和 userAge 的 CoreData。我知道我需要使用带有对象的类,然后在单元格配置中引用对象名称和年龄。
我的自定义类定义为:
class User: NSObject
var userName: String
var userAge: Int
init(userName: String, userAge: Int)
self.userName = userName
self.userAge = userAge
super.init()
在 TableView 控制器中:
var users: [User] = []
随后是从核心数据模型中检索用户记录的逻辑;然后对于检索到的每条记录:
let userDataObject = [ User(userName: userNameFromCoreData!, userAge: userAgeFromCoreData!)]
问题是当我尝试将每个用户记录附加到数组时,我可以在表中显示数组:
users.append(userDataObject)
给出一个 Swift 编译器错误 'NSArray' is not a subtype of 'User'。
如果我使用
var users: [AnyObject] = []
users.append(userDataObject) 有效,但我不确定如何从数组中检索用户名和年龄。
我尝试将实体类字段附加为 appName.User(其中 appName 是真正的应用程序名称),但 users.append 仍然失败并出现同样的错误。
我知道这是一个令人沮丧的问题,在某种程度上,我觉得这可能只是上面代码中的语法,但非常感谢您的想法。
【问题讨论】:
感谢 Leonardo 编辑课程代码。为下一个问题/答复吸取的教训。 【参考方案1】:不要将 User 对象放入数组中?
而不是这个:
let userDataObject = [ User(userName: userNameFromCoreData!, userAge: userAgeFromCoreData!)]
users.append(userDataObject)
这样做:
let userDataObject = User(userName: userNameFromCoreData!, userAge: userAgeFromCoreData!)
users.append(userDataObject)
如果你真的想追加一个数组(例如,因为它包含多个对象),你可以使用+
运算符
users += userDataObjects
【讨论】:
谢谢你,马蒂亚斯。它工作得很好。既然你指出了它,它就很有意义(但我确实错过了它)。再次感谢。以上是关于Swift:如何附加到 NSObject 数组?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中检索 NSURLRequest 的 HTTPBody 参数到 Dictionary: [NSObject: AnyObject]