私は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.facebookIdorself[@"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クラスは適切に呼び出され、そのすべてのプロパティが適切に設定されているようです)。facebookIdParse.com のデータ ダッシュボードを調べると、プロパティも適切に保存されます。
呼び出されたユーザー オブジェクトを調べると、それは ではPFUserなくNPUser、profileImageURLメソッド ( でのみ定義されているNPUser) が呼び出されることがわかります。
私はこれに困惑しています。考えやヒントはありますか?