1

我需要将一个数组定义为全局变量,我可以在我的代码中使用它该数组必须具有 10 个随机数的数据,该数据必须在整个代码中固定我在下面做了什么,但在 .h 中没有运气@interface 之后的文件我把这一行

NSMutableArray *globalarray;

在.m 文件中我把它放在@implemention 文件之后

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

在同一个 .m 文件中,我在 NSLOG 中调用了数组,如下所示

-(IBAction)click_one:(id)sender{


    NSLog(@"%@",globalarray);}



-(IBAction)click_two:(id)sender{


    NSLog(@"%@",globalarray);}

NSLOG 在控制台中返回 null 任何帮助都非常感谢

4

3 回答 3

3

这一行:

globalarray= [NSMutableArray  globalarray];

假设 NSMutableArray 上有一些方法称为“globalarray”。没有。你要:

globalarray = [[NSMutableArray alloc] init];
于 2012-08-25T22:29:55.683 回答
0
#import "AppDelegate.h"

// in viewDidLoad
self.del = (AppDelegate*) [[UIApplication sharedApplication] delegate];

// array now available as
NSLog(@"%@", del.dataArray);
于 2012-08-25T22:36:48.213 回答
0

问题是您分配了自动释放分配。

 GlobalArray=[NSMutableArray array]; is same declarating it as.  

   GlobalArray=[[[NSMutableArray alloc]init]autorelease];

// 所以这里的引用计数在分配和标记它时增加 1 autorelease 使其引用计数为 0。当它的引用计数变为 0 时,它被选择进行垃圾回收,所以你需要保留它,像这样

 GlobalArray=[[NSMutableArray array]retain];// when retaining its reference count increases by 1

需要时释放它。

于 2012-08-26T03:23:03.830 回答