首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析: PFUser子类始终返回<PFUser>对象

分析: PFUser子类始终返回<PFUser>对象
EN

Stack Overflow用户
提问于 2014-05-08 23:01:08
回答 1查看 59关注 0票数 1

我有一个名为LPUser的PFUser子类:

代码语言:javascript
复制
// LPUser.h

#import <Parse/Parse.h>

@interface LPUser : PFUser<PFSubclassing>

@property (retain) NSString firstName;
@property (retain) NSString lastName;

 + (LPUser *)currentUser;

@end



// LPUser.m

#import "LPUser.h"
#import <Parse/PFObject+Subclass.h>

@implementation LPUser

@dynamic firstName;
@dynamic lastName;

+ (LPUser *)currentUser
{
    return (LPUser *)[PFUser currentUser];
}

@end


// AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [LPUser registerSubclass];

    [Parse setApplicationId:@"<< APP ID >>"
                  clientKey:@" << CLIENT KEY >>"];
    return YES;
}

我的问题是,任何对LPUser (currentUser、user或object)的调用都会返回一个PFUser对象,而不是LPUser。即使我把它演得像LPUser user = (LPUser*)[LPUser object]一样。

在设置我的子类时,我做错了什么?

当我NSLog user时,我得到了这个:

代码语言:javascript
复制
2014-05-08 13:46:39.879[21529:60b] user: <PFUser:new:(null)> {

}
EN

回答 1

Stack Overflow用户

发布于 2014-05-14 13:25:14

return (LPUser *)[PFUser currentUser]不是在创建新对象,而只是转发PFUser类从其+currentUser类方法返回的任何内容。

因为您的代码中没有该方法的代码,所以我认为它要么返回一个静态PFUser实例,要么由同一个类上的setCurrentUser方法设置。

无论如何,LPUserPFUser都返回相同的对象,所以您不能在当前实现中为每个对象都有不同的类实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23545513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档