0

我有以下方法,我想调用它并以另一种方法返回数组数据,但这不起作用。但是其他方法中的 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];
}
4

1 回答 1

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]];
        }
    }            
}
于 2012-08-23T21:29:00.763 回答