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