私は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
orself[@"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.
PFUser のサブクラス化に関する Parse でこの質問を読みましたが、役立つものは何も見つかりませんでした。また、 PFObject のサブクラス化に関するドキュメントを読み、そこに書かれていることに従いました。
それ以外の場合は、すべての機能が機能します (私のNPUser
クラスは適切に呼び出され、そのすべてのプロパティが適切に設定されているようです)。facebookId
Parse.com のデータ ダッシュボードを調べると、プロパティも適切に保存されます。
呼び出されたユーザー オブジェクトを調べると、それは ではPFUser
なくNPUser
、profileImageURL
メソッド ( でのみ定義されているNPUser
) が呼び出されることがわかります。
私はこれに困惑しています。考えやヒントはありますか?