如何在其他方法中调用和返回数组数据

时间:2012-08-23 21:16:05

标签: objective-c arrays nsmutablearray

我有以下方法,我想调用它并以另一种方法返回数组数据,但这不起作用。但是另一种方法中的self不返回数据吗?

- (NSMutableArray *)glo
{
    NSMutableArray *globalarray = [[NSMutableArray array]init];
    for (int x = 0; x < 10; x++) {
        [globalarray addObject: [NSNumber numberWithInt: arc4random()%200]];
        return globalarray ;
    }
}


-(IBAction)clicked_insertsort:(id)sender{
    [self glo];
}

1 个答案:

答案 0 :(得分:2)

我真的尝试将代码中的某些部分替换为以下内容:

- (NSMutableArray *)glo
{
    NSMutableArray *globalarray = [[NSMutableArray array] init];
    for (int x = 0; x < 10; x++) {
        [globalarray addObject:[NSNumber numberWithInt: arc4random()%200]];
    }
    return globalarray; // pull out from the loop
}

和此:

-(IBAction)clicked_insertsort:(id)sender{
    NSMutableArray *array = [self glo]; // take care of the return value
    NSLog(@"array : %@", array)
}

<强>更新

如果你想要你的全局变量,你应该定义以下内容:

@interface YourClass : NSObject {
    NSMutableArray *globalarray;
}

// ...

@end

并且方法将如下(不需要返回值,因为该变量现在可以从整个类中获得)

- (void)glo {
    if (!globalarray) {
        globalarray = [NSMutableArray array];
        for (int x = 0; x < 10; x++) {
            [globalarray addObject:[NSNumber numberWithInt: arc4random()%200]];
        }
    }            
}