在写一个自定义动态生成网格菜单的时候,遇到一个问题!我创建一个中间变量,全局变量NSMutableArray去接收解析出来的一个动态数组,在第一次赋值给nsmutablearray的时候在{ }中能后取出值!(没有内存泄露,没提前release),但是当在其他地方我要从其中取值就会出现一些奇怪的错误!要不直接crash,要不取出来是一串对uiwindow的描述,求教各位指点指点!!!

解决方案 »

  1.   

    应该是内存管理问题,楼主可以试试用属性来定义这个变量,系统将自动完成retain等操作
      

  2.   

    谢谢你的回答,我也怀疑是内存问题,但是我用retaincount打印出来没问题,而且我在另外一个工程里面这样用没问题!(工具不知道有问题没有),我也尝试用属性,但是同样的出现这样的结果;我现在的解决方法是再用一个数组来装我赋值的数组,在其他地方用就没问题,但是多了一层 objectAtIndex :0   ;我主要是想问问造成这种情况的原因!
      

  3.   

    hello boy,I'm very glad to tell you all the methods modified with + and don't have the word "alloc" in IOS SDK,that's all using autorelease .+(NSMutableArray *)array
    {
        NSMutableArray * aArray=[[[NSMutableArray alloc]init]autorelease];
       return array;
    }that means if u don't retain it,it will be release sooner or later.
    you can just make it asarr=[[NSMutableArray array]retain];//in other moethods:
    [arr release];it eaquls
    arr=[[NSMutableArray alloc]init];//in other moethods:
    [arr release];