我來自Actionscript Background。在Actionscript中,類方法只能訪問類方法和類屬性。類方法如何訪問實例方法?
但在Objective C,
如何類方法gameResultAll可以訪問實例方法initFromPlist
+(NSMutableArray *)gameResultAll://Class Method -(id)initFromPlist:(id)plist;//Instance Method NSMutableArray *gameResults = [GameResult gameResultAll]; // (returns GameResult array)
爲什麼[個體經營的init]方法被調用,而不是[超級初始化]創建來自類方法的實例。
在此先感謝。
#import "GameResult.h"
@implementation GameResult
#define GAME_RESULT_KEY @"gameresult_key"
#define SCORE_KEY @"score"
+(NSMutableArray *)gameResultAll
{
NSMutableArray *resultArray = [[NSMutableArray alloc] init];
for (id plist in [[[[NSUserDefaults standardUserDefaults] dictionaryForKey:GAME_RESULT_KEY] mutableCopy] allValues])
{
GameResult *gameResult = [[GameResult alloc] initFromPlist:plist];
[resultArray addObject:gameResult];
}
return resultArray;
}
//Designated initialiser
-(id)initFromPlist:(id)plist
{
self = [self init];
if(self)
{
if([plist isKindOfClass:[NSDictionary class]])
{
NSDictionary *resultDictionary = (NSDictionary*)plist;
_score = (int)resultDictionary[SCORE_KEY];
}
}
return self;
}
@ H2CO3 lololol我只是想說, –
對不起,我第一次使用。我更新了。 – partikles