我正在使用Parse.com,我有一个PFUser
名为NPUser
.
这是代码:
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.facebookId
or self[@"facebookId"]
or [self objectForKey:@"facebookId"]
(我相信它们都是一样的)时,我得到了这个错误:
error: Execution was interrupted, reason: internal ObjC exception breakpoint(-3)..
The process has been returned to the state before expression evaluation.
我已经在 Parse 上阅读了这个关于子类化 PFUser 的问题,但我没有找到任何可以帮助我的东西。我还阅读了关于子类化 PFObject 的文档,并遵循了那里所说的内容。
问题是所有功能都可以正常工作(我的NPUser
类似乎被正确调用并且它的所有属性都被正确设置)。facebookId
当我检查 Parse.com 上的数据仪表板时,该属性也被正确保存。
我应该提到,当我检查被调用的用户对象时,它说它PFUser
不是 a NPUser
,但是profileImageURL
方法(仅在 中定义NPUser
)确实被调用了。
我对此感到困惑。有什么想法或提示吗?