为什么NSMutableArray在init类的allo init autorelease时总是出错?

时间:2011-08-08 12:15:53

标签: iphone xcode nsmutablearray

某处.h我把

@property (nonatomic, retain) NSMutableArray * BusinessQueue;

-(BNUtilitiesQuick *) init {
        if (!(self = [super init]))
        {
            return nil;
        }//if the superclass is NSObject, this must be init
        self.locationManager = [[[CLLocationManager alloc] init]autorelease];
        BusinessQueue = [[[NSMutableArray alloc]init]autorelease]; 
        return self; //and return the object itself
    }

我看到BusinessQueue = [[[NSMutableArray alloc]init]autorelease];的方式将使引用计数为1.1。 -1表示自动释放(有时是后者)和1表示因为BusinessQueue是保留属性。

但是,BusinessQueue有时会被解除分配。

为什么BusinessQueue始终出错但位置管理器不

任何错误的代码?或NSMutableArray不能在init类声明?

1 个答案:

答案 0 :(得分:5)

BusinessQueue不是属性。 self.BusinessQueue可能是,如果你这样定义的话。

加了:

进行初始化的最佳/最简单方法是:

self.businessQueue = [NSMutableArray array];