NSArray becomes NSCFArray when passed

后端 未结 3 1786
迷失自我
迷失自我 2021-01-13 14:29

I have a method that receives many different kinds of objects and decides what to do with them:

-(void)performAction:(NSObject *)myAction withItem:(Item *)my         


        
3条回答
  •  灰色年华
    2021-01-13 15:01

    NSСFArray is subclass of NSMutable Array

    You can use isKindOfClass to check it

    if ([myAction isMemberOfClass:[Look class]]) {
        currentActionArray = [self createLookArray:(Look *)myAction item:myItem];
    } else if ([myAction isMemberOfClass:[Use class]]) {
            currentActionArray = [self createUseArray:(Use *)myAction item:myItem];
    } else if ([myAction isMemberOfClass:[Exit class]]) {
            currentActionArray = [self createExitArray:(Exit *)myAction item:myItem];
    } else if ([myAction isKindOfClass:[NSArray class]] ) {
            NSLog(@"--- CUSTOM ACTION --- %@", myAction);
            currentActionArray = (NSArray *)myAction;
    } 
    

提交回复
热议问题