2009-03-27 2 views
5

를로드하지, 나는 아래 applicationDidFinishLaunching의 첫 번째 행으로 다음과 같은 일을 해요 : 라인이 실행있는 NSArray initWithObjects : 테스트로

NSArray *list=[[NSArray alloc] initWithObjects:@"Andy",@"Erik",@"Aaron",nil]; 

후, 나는 배열의 제로 개체가. 이 코드 경로를 추가로 수행하고 있지만 구문이 올바른지 확인하기 위해 영향을 제거하고 싶습니다. NSMutableArray를 사용하여 동일한 결과를 얻습니다. 디버거에서 배열 이름 위에 mousing하여 값이 있는지 확인합니다. 나는 다음 줄의 수를 통해 마우스, 나는 "가변적이고 최적화 된 아 ... 개요"를 참조하면

:

int count = [list count]; 

어떤 제안 이유 배열은 기입하지 않는 이유를 수는 환원되지 않는다 정수?

답변

6

'count'변수를 사용하지 않고 컴파일러가이를 최적화하고 있습니다.

1) 릴리스 모드 대신 디버그에서 실행 해보십시오. 디버그 모드는 물건을 최적화하지 않으므로 카운트 변수가 마우스로 디버거에서 올바른 결과를 얻는 것을 볼 수 있습니다. xcode의 왼쪽 위에있는 드롭 다운 막대를 클릭하여 활성 구성을 릴리스에서 디버그하도록 변경할 수 있습니다.

2) 코드에서 'count'변수를 사용하십시오. 릴리스 빌드에서 컴파일러가 원하는 경우 일이 발생할 수 있습니다. 예를 들어 카운트 초기화 문을 어딘가에두고 코드에서 'count'를 더 아래로 사용하면 'count'가 실제로 사용되기 전까지 'count'가 설정되지 않을 수 있습니다.

+0

감사합니다. 비정상적으로 배포 모드에서 우발적으로 발생했습니다. 이상하게 여기 저기 뛰어 다니는 것. – 4thSpace