我需要将一个数组定义为全局变量,我可以在我的代码中使用它,数组必须有一个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,任何帮助都是高度适应的,谢谢
答案 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
在需要时释放它。