我有一个名为LPUser的PFUser子类:
// 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时,我得到了这个:
2014-05-08 13:46:39.879[21529:60b] user: <PFUser:new:(null)> {
}发布于 2014-05-14 13:25:14
return (LPUser *)[PFUser currentUser]不是在创建新对象,而只是转发PFUser类从其+currentUser类方法返回的任何内容。
因为您的代码中没有该方法的代码,所以我认为它要么返回一个静态PFUser实例,要么由同一个类上的setCurrentUser方法设置。
无论如何,LPUser和PFUser都返回相同的对象,所以您不能在当前实现中为每个对象都有不同的类实例。
https://stackoverflow.com/questions/23545513
复制相似问题