Objective c 为什么NSMutableArray显示的计数大小为0?

Objective c 为什么NSMutableArray显示的计数大小为0?,objective-c,ios,Objective C,Ios,这里很混乱 我有一个名为“Section”的NSObject子类,其NSMutableArray属性名为“content” 为什么我的NSLOG显示“计数为0”?您是否正在初始化部分内的数组内容?您正在做的事情类似于-content=[[NSMutableArray alloc]init] 让我知道这是否有帮助。您是否在部分内初始化数组内容?您正在做的事情类似于-content=[[NSMutableArray alloc]init] 让我知道这是否有帮助。您可能需要分配NSMutableArr

这里很混乱

我有一个名为“Section”的NSObject子类,其NSMutableArray属性名为“content”


为什么我的NSLOG显示“计数为0”?

您是否正在初始化
部分内的数组
内容
?您正在做的事情类似于-
content=[[NSMutableArray alloc]init]


让我知道这是否有帮助。

您是否在
部分内初始化数组
内容
?您正在做的事情类似于-
content=[[NSMutableArray alloc]init]


让我知道这是否有帮助。

您可能需要分配
NSMutableArray
——这通常是导致此问题的原因

在你的部分。m:

- (id) init {
    //...
    content = [[NSMutableArray alloc] init];
    //...
}

您可能需要分配
NSMutableArray
——这通常是导致此问题的原因

在你的部分。m:

- (id) init {
    //...
    content = [[NSMutableArray alloc] init];
    //...
}

您正在初始化子类中的
内容
?如果不是,那可能就是问题所在

您的init方法应该如下所示:

- (id)init
{
    if (self = [super init])
    {
      _content = [[NSMutableArray alloc] init];
    }
    return self;
}
- (void)dealloc
{
  [_content release];
  [super dealloc];
}
如果您不使用ARC,您的dealloc应如下所示:

- (id)init
{
    if (self = [super init])
    {
      _content = [[NSMutableArray alloc] init];
    }
    return self;
}
- (void)dealloc
{
  [_content release];
  [super dealloc];
}

您正在初始化子类中的
内容
?如果不是,那可能就是问题所在

您的init方法应该如下所示:

- (id)init
{
    if (self = [super init])
    {
      _content = [[NSMutableArray alloc] init];
    }
    return self;
}
- (void)dealloc
{
  [_content release];
  [super dealloc];
}
如果您不使用ARC,您的dealloc应如下所示:

- (id)init
{
    if (self = [super init])
    {
      _content = [[NSMutableArray alloc] init];
    }
    return self;
}
- (void)dealloc
{
  [_content release];
  [super dealloc];
}

你能发布
内容
的属性声明和
部分
中修改它的任何代码吗?你能发布
内容
的属性声明和
部分
中修改它的任何代码吗?
init
方法不太安全
init
方法不太安全注意如果OP不安全使用ARC这是内存泄漏是的,OP应该在
dealloc
方法中释放
content
。不,如果OP不使用ARC,这仍然是内存泄漏
alloc/init
is+1 retain和
content
很可能必须声明
retain
,这将是另一个+1,您只能在
dealloc
@Paul中发布一次。那么请更正我的答案,不要表现得像一个校长;)注意:如果OP没有使用ARC,这是内存泄漏是的,OP应该明确地在
dealloc
方法中释放
content
。不,如果OP没有使用ARC,这仍然是内存泄漏
alloc/init
is+1 retain和
content
很可能必须声明
retain
,这将是另一个+1,您只能在
dealloc
@Paul中发布一次。那么请更正我的答案,不要表现得像一个校长;)