【问题标题】:Parse: PFUser subclassed object not updating attributes across viewcontrollers解析:PFUser 子类对象不跨视图控制器更新属性
【发布时间】:2015-08-15 10:50:04
【问题描述】:

我将 PFUser 子类化为 User 类。它已在 Parse 中正确注册。

用户.h

@interface User : PFUser <PFSubclassing>

@property (strong, nonatomic) NSMutableArray *topics;

用户.m

@interface User ()
@end
@implementation User
@synthesize topics;

在视图控制器中,我通过以下方式访问用户:

User *user = [User currentUser];
user.topics = @[@"a"];

在随后的视图控制器中,我运行以下代码:

User *user = [User currentUser];
user.topics = [user.topics addObject:@"b"];

当我弹回到第一个视图控制器时,如果我在 viewDidLoad 中检查 user.topics,它显示它的值仍然是 [@“一个”] 并不是 [@"a", @"b"]

[User currentUser] 获取一个单例,理论上无论我从哪里编辑它都应该改变。

对可能出现的问题有什么想法吗?

【问题讨论】:

    标签: ios objective-c parse-platform singleton


    【解决方案1】:

    如果您在调用密钥之前已在didFinishLaunchingWithOptions: 中注册了您的子类,那么建议您更改的只是您的合成属性。您应该调用 @dynamic 而不是综合。来源:https://parse.com/docs/ios/guide#objects-properties-amp-methods

    【讨论】:

    • 感谢 Jteve - 我实际上不希望保存该特定属性以进行解析,这就是我使用合成而不是动态的原因。无论哪种方式,我尝试将其更改为动态仍然没有骰子。当我查看指针时,它们在两个地方都是相同的地址。但是,在描述中它显示它是一个 PFUser 对象而不是一个 User 对象 - 这可能是为什么?不知道为什么我可以读取但不能写入属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    相关资源
    最近更新 更多