ios - 尝试访问 PFUser 子类的动态属性时出错

标签 ios objective-c parse-platform pfuser

我正在使用 Parse.com我有一个名为 NPUserPFUser 子类。

代码如下:

NPUser.h

#import <Foundation/Foundation.h>
#import <Parse/Parse.h>

@interface NPUser : PFUser <PFSubclassing>

@property (nonatomic) NSString *facebookId;

- (NSURL *)profileImageURL;

@end

NPUser.m

#import "NPUser.h"
#import <Parse/PFObject+Subclass.h>

@implementation NPUser

@dynamic facebookId;

+ (void)load {
    [self registerSubclass];
}

- (NSURL *)profileImageURL {
    // -- This is where things blow up -- 
    NSString *urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", self.facebookId];
    return [NSURL URLWithString:urlString];
}

@end

当我调用 profileImageURL 时,奇怪的事情发生了,似乎执行中止了,但应用程序没有卡住。我在第一行放置了一个断点并将其缩小到 self.facebookId 失败。

当我调用 self.facebookIdself[@"facebookId"][self objectForKey:@"facebookId"] (哪个我相信都是一样的)我得到这个错误:

error: Execution was interrupted, reason: internal ObjC exception breakpoint(-3)..
The process has been returned to the state before expression evaluation.

我读过 this question on Parse about subclassing PFUser但我在那里找不到任何可以帮助我的东西。我还阅读了 docs on subclassing PFObject并听从那里所说的一切。

问题是所有功能都可以正常工作(我的 NPUser 类似乎被正确调用并且它的所有属性都被正确设置)。当我检查 Parse.com 上的数据仪表板时,facebookId 属性也已正确保存。

我应该提一下,当我检查被调用的用户对象时,它说它是 PFUser 而不是 NPUser 而是 profileImageURL 方法(这是仅在 NPUser 中定义)会被调用。

我对此感到困惑。有什么想法或提示吗?

最佳答案

所以我睡了一觉,发现了问题所在,这是我的一个愚蠢的疏忽。

基本上在这种情况下我没有直接访问用户对象。相反,它是指向我拥有的另一个对象的指针关联。所以问题是我没有打电话:

[query includeKey:@"user"];

当查询其他对象时,它实际上并不包括完整的对象。这是偷偷摸摸的,因为那里有一个实际的对象,它的方法被调用但它的动态属性没有实现(据我所知)。

希望这对将来的其他人有帮助。

关于ios - 尝试访问 PFUser 子类的动态属性时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27661627/

相关文章:

iphone - 我在 UIView 中的图像似乎比在启动画面中大

ios - 在 AVAudioRecorder Session 中查找静音

javascript - 将 NSDictionary 从 Javascript 传递到 JavascriptCore 中的 Objective-c

iphone - 核心数据的数据迁移

objective-c - 让 NSWindow 始终处于后台,同时仍然接受鼠标事件

ios - 有没有办法在 parse.com 上强制执行单设备登录?

javascript - 使用 javascript 打开移动应用程序(如果已安装)(无意)

ios - UITableView 中的单元格 imageView 在被选中之前不会出现

ios - 从 PFObject 访问 NSArray 中的项目

ios - iOS/解析查询未在数组中找到字符串匹配