gpt4 book ai didi

dynamic - swift : Parse subclass dynamic var dont get included when retrieving object

转载 作者:可可西里 更新时间:2023-11-01 00:24:27 25 4
gpt4 key购买 nike

从 Parse Data Browser 检索对象时,我无法获取对象属性。这是在我从“@NSManaged var friends”更改为“dynamic var friends”之后发生的。甚至“名称”在 User.logInWithUsernameInBackground block 中也显示为 nil,这很疯狂,因为登录成功了。用户的 ACL 设置为“公共(public)读取”。

用户对象:

class User : PFUser, PFSubclassing {

dynamic var friends:[User]!
dynamic var name:String!

override class func load() {
self.registerSubclass()
}
}

检索用户和 friend 。 println 显示为 nil

var query = User.query()
query.includeKey("friends")
query.getObjectInBackgroundWithId(currentUser.objectId) {
(pfObject: PFObject!, error: NSError!) -> Void in
if pfObject != nil {
var user = pfObject as User
var friends = user.friends as [User]
println("friends: \(friends)") //nil
} else {
println(error)
}
}

登录。 println 显示为 nil

User.logInWithUsernameInBackground(USERNAME, password:PASSWORD) {
(user: PFUser!, error: NSError!) -> Void in
if user != nil {
println("Logged in with user: \(user.name)") //nil
} else {
println(error)
}
}

最佳答案

对您来说更深入一点,障碍似乎是对 Swift 中的 dynamic 修饰符的作用的误解。显然,Swift 中的 dynamic 用于键值观察,而不是声明要在运行时定义的变量访问器(@dynamic 在 Objective-C 中的作用)

有关 Swift 中 dynamic 的描述,请参阅此 https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html#//apple_ref/doc/uid/TP40014216-CH7-XID_8

这是为了描述为什么 @NSManaged 的​​工作方式与 @dynamic 在 Objective-C 中的工作方式相同 https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/BuildingCocoaApps/WritingSwiftClassesWithObjective-CBehavior.html#//apple_ref/doc/uid/TP40014216-CH5-XID_66

关于dynamic - swift : Parse subclass dynamic var dont get included when retrieving object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25724955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com