LoadXMLByUrl:Method返回一个具有+1保留计数的Objective-C对象

时间:2011-11-24 13:38:12

标签: objective-c xml xcode

@synthesize xmlcont;

- (void)viewDidLoad {
/* Line 35 */ xmlcont =[[pxmlC alloc]loadXMLByUrl:@"http://openmenu.com/api/v1/restaurant?key=57d3661c-0fa1-11e1-80ac-00163eeae34c&name=rusc"];
for (pxml *t in [xmlcont xmlArray]) {
    NSLog(@"Name: %@ %d",[t rname],[[xmlcont xmlArray] indexOfObject:t] );
}
NSLog(@"abc");
[super viewDidLoad];}

- (void)dealloc {
    [xmlcont release];
    [super dealloc];
}

但Build ans Analyze说

  

在第35行分配的对象的潜在泄漏

当我点击“>”时,它说:

  

Method返回一个具有+1保留计数的Objective-C对象(拥有   参考)

     

此点之后不再引用第35行分配的对象   保留计数为+1(对象泄露)

像这样: http://www.freeimagehosting.net/newuploads/af6b3.png

我无法理解...... 请帮我解决。 非常感谢^^

2 个答案:

答案 0 :(得分:0)

如果您的属性被声明为保留,则应通过访问者和自动释放

进行设置
self.xmlcont = [[[pxmlC alloc] loadXMLByUrl:@"http://openmenu.com/api/v1/restaurant?key=57d3661c-0fa1-11e1-80ac-00163eeae34c&name=rusc"] autorelease];

您还应遵循命名约定并拥有initinit...初始值设定项。如果有,请致电init bebore,呼叫loadXMLByUrl

答案 1 :(得分:0)

我认为分析器被名不副实的初始化器弄糊涂了。初始化程序名称必须以init…开头,以便分析器知道该方法将返回接收方。将您的loadXMLByUrl初始化程序重命名为initWithContentsOfURL,看看是否有帮助。