NSString - stringWithFormat освобождается автоматически - PullRequest
0 голосов
/ 22 августа 2011
@property(nonatomic, retain) NSString *password;

-(id)init {
...
password=[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]];
OR
password=[[NSProcessInfo processInfo] globallyUniqueString];
}

Моя проблема в том, что во время выполнения в некоторый случайный момент объект пароля автоматически освобождается.Эффект тот же, когда я использую любое из заданий.Как только я положил в очередь, проблема больше не существует.Я уверен, что нигде в потоке нет освобождения объекта пароля - как я уже говорил, он находится в одноэлементном классе.Я также проверил, что экземпляр класса такой же, даже когда объект пароля освобожден.

Любые подсказки, пожалуйста!

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Вы присваиваете iVar, а не свойство ... Так как вы не используете метод установки, ваш объект не сохраняется.

Вместо этого используйте свойство:

self.password = ...
0 голосов
/ 22 августа 2011

Вы можете использовать ...

password=[[NSString stringWithFormat:@"%@", [[NSProcessInfo processInfo] globallyUniqueString]] retain];

Также ознакомьтесь с документом Apple по управлению памятью . Я также установил бы точки останова в вашем коде и увидел бы, как ваш объект освобождается.

...