【发布时间】:2010-12-16 10:14:44
【问题描述】:
我有这个可变数组:
NSMutableArray *points = [pgroute getPoints:self];
[getPoint...] 这样做:
{
NSMutableArray *normPoints = [[NSMutableArray alloc] init];
[normPoints addObject:@""];
[...]
return normPoints;
}
现在,
points 是一个对象数组,对吧?
以这种方式释放*points数组是否正确?
for (int i = 0; i < [points count]; i++) {
[(NSString *)[points objectAtIndex:i] release];
}
[points release];
还是另一种正确的方式?
Xcode 编译器,用RUN_CLANG_STATIC_ANALYZER 告诉我有一个
引用减量不正确 不拥有的对象的计数 此时由调用者
我该如何解决这个问题?
谢谢,
阿尔贝托。
【问题讨论】:
-
如果您想自己管理
NSMutableArray,您应该考虑重命名您的方法,使其包含单词new。这是为了遵守 Apple 的命名约定,即任何带有alloc、init、new或copy的方法都返回必须手动释放的对象。
标签: objective-c object nsstring nsmutablearray release