필자는 (옵션 C에 표시된대로) 필자가 사전에 디버깅을 할 수있게하기 때문에 대개 B 옵션을 사용합니다. 그것은 또한 내 의견으로는 청결 해 보인다. 이것은 아마도 문제가되지 않을 수도 있지만 옵션 B 또는 C가 더 많은 메모리를 사용하는지 아니면 iOS 프로그래밍에서 이것을 수행 할 때 고려해야 할 다른 것이 있는지 궁금합니다. 그건 그렇고, 나는 ARC를 사용하고있다.Objective-C 중간 객체 최적화
옵션 B 또는 C 대신 옵션 A를 사용하면 장점이 있습니까?
// OPTION A
NSString *someString = [[self grabDictionaryFromDB] objectForKey:@"someField"];
// OPTION B
NSDictionary *dbRow = [self grabDictionaryFromDB]; // dbRow ONLY gets used in the next line
NSString *someString = [dbRow objectForKey:@"someField"];
// OPTION C
NSDictionary *dbRow = [self grabDictionaryFromDB]; // dbRow ONLY gets used in the next two lines
NSLog(@"Row: %@", dbRow);
NSString *someString = [dbRow objectForKey:@"someField"];
[this] (http://stackoverflow.com/questions/12062162/does-an-auxiliary-variable-with-a-pointer-have-any-performance-memory-impact)를 참조하십시오. – Adam
속도 테스트를 수행 했습니까? 내 생각에, 그 숫자는 당신에게 대답을 말할 수 있습니다 ... – holex
@ 아담 감사합니다, 그것은 그것을 잘 설명합니다. 나는 dasblinken의 답변을 받아 들였는데, 시간을내어 쓰기 (그리고 나는 당신의 의견 앞에서 그것을 보았다)! holex, speed test는 아무런 의미있는 결과도 얻지 못했지만 메모리에 더 관심이있었습니다 (이 상황에서 메모리 사용을 테스트하는 방법을 알지 못합니다). – Julian