ARC에 관한 문서를 읽고 혼란 스러웠던 부분을 발견했습니다. 누구든지 나를 도울 수 있습니까? 두 가지 질문이 있습니다. 1. 변수가 가리키고 있지 않을 때 ARC 릴리스 객체를 알 수 있습니다. 이제는 어떤 메소드가 있다고 가정합니다. (NSString *) returnString, return type이 NSSTring이므로 어떤 변수가 발생합니까? returnString 메서드에 선언되어 있습니다? returnString이 호출되는 메서드의 범위를 벗어날 때받는 변수가 릴리스 될 것이라는 것을 알고 있지만 returnString 내부의 변수는 어떻게 될지 알 수 있습니다.ARC를 사용할 때 메모리가 해제되는 방식은 무엇입니까?
-(NSSTring *)returnString
{
NSString *str = //Some value;
return str;//What will happen to this.
}
및 다른 방법 returnString는 ARC 컴파일되지 않은 일부 타사 라이브러리에있는 경우
-(void)useString
{
NSString *str1 = [self returnString]; //It will get release when this method gets over.
}
2.What이 일어날 것인가?
답장을 보내 주셔서 감사합니다. 첫 번째 대답이 있습니다.하지만 두 번째 질문에 대해서는 두 번째 경우에 수동으로 str을 자동 갱신해야합니까? –
파일에 "-fno-objc-arc"라고 표시되어 있으면 수동 retain/release/autorelease가 필요합니다. – kevboh