Я читал документ о ARC и наткнулся на часть, которая меня смутила. Пожалуйста, кто-нибудь может мне помочь. У меня есть два вопроса: 1.I знаю объект выпуска ARC, когда никакая переменная не указывает на него. Теперь предположим, что у меня есть какой-то метод: (NSString *) returnString, чей тип возврата - NSSTring, и что произойдет с переменной, которая объявляется в методе returnString? Я знаю, что получающая переменная получит release, когда она выходит из области действия метода, где вызывается returnString, но что произойдет с переменной, которая находится внутри returnString.Как освобождается память при использовании ARC?
-(NSSTring *)returnString
{
NSString *str = //Some value;
return str;//What will happen to this.
}
и Другой метод:
-(void)useString
{
NSString *str1 = [self returnString]; //It will get release when this method gets over.
}
2.Что будет, если returnString в какой-то библиотеки третьей стороны, которая не скомпилированные с ARC?
Спасибо за ваш ответ. Я получил первый ответ. Но для второго вопроса, который вы хотите сказать, мне нужно авторейтировать строку вручную во втором случае? –
Если файл отмечен как «-fno-objc-arc», вам все равно потребуется ручное сохранение/освобождение/автозапуск. – kevboh