将数组定义为目标c中的全局变量

时间:2012-08-25 22:10:16

标签: iphone objective-c nsmutablearray global-variables

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

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,任何帮助都是高度适应的,谢谢

3 个答案:

答案 0 :(得分:3)

这一行:

globalarray= [NSMutableArray  globalarray];

假设在NSMutableArray上有一些名为“globalarray”的方法。没有。你想要:

globalarray = [[NSMutableArray alloc] init];

答案 1 :(得分:0)

#import "AppDelegate.h"

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

// array now available as
NSLog(@"%@", del.dataArray);

答案 2 :(得分: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

在需要时释放它。