ios - 子类化 PFUser。访问当前用户

标签 ios objective-c parse-platform

我正在尝试对 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 <Parse/Parse.h>

@interface User : PFUser <PFSubclassing>

@property (nonatomic, strong) NSString *firstName;

+ (User *)user;
+ (BOOL)isLoggedIn;

@end

User.m

#import "User.h"
#import <Parse/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/

相关文章:

ios - 我们可以在流式传输 m3u8 文件时手动下载/缓存传输流吗

iphone - 无法从 for-in 循环中更新 NSMutableDictionary 值?

android - 有没有办法将文件从 Android 发送到公用文件夹?

javascript - 通过 REST 从 Parse.com 检索 Fullcalendar 事件

ios - 如何解析不同的字符串日期

ios - 集成和使用 W3i iOS Advertiser SDK 来宣传我们的 iOS 应用程序

objective-c - 当 NSWindow 指令退出时使 App 失去焦点

objective-c - 您可以显示错误:nil?的编译器警告吗

ios - Parse.com 如何知道数组是否不包含对象

iphone - 在不同上下文中非法尝试在对象之间建立关系..为什么会出现此错误?