Я использую Parse.com, и у меня есть PFUser
подкласс NPUser
.Ошибка при попытке доступа к динамическому свойству подкласса PFUser
Вот код:
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
или self[@"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
, кажется, правильно вызван и все его свойства правильно установлены). Свойство facebookId
также сохраняется правильно, когда я проверяю панель данных данных на Parse.com.
Следует отметить, что, когда я проверить называемый пользовательский объект он говорит, что это PFUser
не NPUser
но метод profileImageURL
(который определен только в NPUser
) не дозвонились.
Я озадачен этим. Любые мысли или советы?
Определенно помог мне. в моем случае, он просто прекратил работу из ниоткуда через несколько дней dev/testing. Мне пришлось включить ключ из массива объектов 'query.includeKey (" listOfThings.object ")'. У меня были все виды сумасшедших/страшных вещей, подобных этому, с SDK Parse. – jday