LoadXMLByUrl: метод возвращает объект Objective C с счетом сохранения +1 - PullRequest
0 голосов
/ 24 ноября 2011
@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 и Analyze сказали :

Потенциальная утечка объекта, расположенного в строке 35

Когда я нажимаю «>», он говорит:

Метод возвращает объект Objective-C со счетом удержания +1 (ссылка на владельца)

Объект, размещенный в строке 35, больше не имеет ссылки после этой точки и имеет счет сохранения +1 (утечка объекта)

Вот так: http://www.freeimagehosting.net/newuploads/af6b3.png

Я не могу понять ... Пожалуйста, помогите мне исправить это.Большое вам спасибо ^^

Ответы [ 2 ]

0 голосов
/ 24 ноября 2011

Я думаю, что анализатор сбит с толку названным инициализатором.Имена инициализаторов должны начинаться с init…, чтобы анализатор знал, что метод вернет получатель.Переименуйте ваш loadXMLByUrl инициализатор в initWithContentsOfURL и посмотрите, поможет ли это.

0 голосов
/ 24 ноября 2011

Если ваша собственность объявлена ​​как сохраняемая, вы должны установить ее через аксессор и авто-релиз

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

также вы должны следовать соглашениям об именах и иметь инициализатор init или init.... Если он есть, вы должны позвонить init bebore call loadXMLByUrl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...