이것은 초보자 용 질문입니다. 나는 변수 오늘 새 문자열이 필요, 그래서 나는이 같은 짓 :새 문자열 초기화
NSString* newString = nil;
if(something)
newString = @"a value";
else
newString = @"different value";
을하고 그냥 괜찮 았는데. 그럼에도 불구하고, 나는 메모리 할당에 대해 조금 알고, 나는이 어떻게 든 문제가 발생할 수 있습니다 두려워, 그래서가 결국 코드를 변경 : 그것은 내가 이전에 무슨 짓을했는지 나쁜 관행
NSString* newString = [NSString stringWithFormat:@""];
if(something) ...
인가? 일부 변수는 자동으로 할당된다는 것을 알고 있으므로 alloc을 호출 할 필요가 없지만 nil로 초기화하지는 않습니다. 이 질문은 바보 같은 소리 경우 나는이 전무에 대한 질문 @ 대없는
[편집] 전무 .. 내가 PHP에서 오브젝티브 -C에 와서 메모리 관리에 대한 내 지식에 가까운, 미안 해요 ""; 제 질문은 단순히 NSString = something
(nil, @ "", @ "a value")을 사용하는 것이 좋습니다. 일반적으로 객체에 대해이 작업을 수행하는 것이 좋습니다. if
의 두 가지 newString
에 값을 할당하기 때문에 대신 NSRandomObject = [[NSRandomObject* alloc] init];
일을 단순히 NSRandomObject = aValue;
물론 효과가 없습니다. 그 아이디어는 다음과 같습니다. D NSString * theString = @ "something"을 사용할 수 없습니다. 내부에있는 if, 그리고 그 안에있는 theString은 제대로 선언되지 않았기 때문에 else 내부에 있습니다. 그래서 if/else 구조 앞에 빈 init을 사용했습니다. – BBog
@BogdanBucur 만약'if'의 값을 무효로 할 경우 (무조건적으로)'nil'으로 초기화하는 것이 더 낫습니다. – dasblinkenlight
고마워, 그게 내가 알아야 할거야! 나는 당신의 도움에 감사한다. – BBog