我正在尝试子类化 PFUser,因为我想添加一些属性,但我还需要 [MyUserSubclass currentUser] 返回 MyUserSubclass 而不是 PFUser 实例。
我当前的代码是这样的:
+ (instancetype)currentClient {
MyUserSubclass *client = [MyUserSubclass objectWithoutDataWithObjectId:[PFUser currentUser].objectId];
[client fetch];
return client;
}
在方法 [client fetch] 中,我的应用程序崩溃并且控制台收到警告:无法刷新尚未保存到服务器的对象。
请帮忙。
如果您在 Parse 库中检查 PFUser.h
,您将看到 currentUser
返回 instancetype
。
+ (instancetype)currentUser;
这意味着如果您将 PFUser
子类化,则 currentUser
返回子类类型的对象,在您的情况下为 MyUserSubclass
.
这是一个子类化 PFUser
的简短示例:
User.h
#import <arse/Parse.h>
@interface User : PFUser <FSubclassing>
@property (nonatomic, strong) NSString *firstName;
+ (User *)user;
+ (BOOL)isLoggedIn;
@end
User.m
#import "User.h"
#import <arse/PFObject+Subclass.h>
@implementation User
@dynamic firstName;
+ (User *)user {
return (User *)[PFUser user];
}
+ (BOOL)isLoggedIn
{
return [User currentUser] ? YES: NO;
}
@end
注意我需要实现一个 +(User *)user;
方法,因为在 PFUser.h
它是 +(PFUser *)user;
而不是 instancetype
。
关于ios - 子类化 PFUser。访问当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25194235/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |