2012-05-26 2 views
0

감사합니다. 문제가 해결되었습니다. :)텍스트 필드에서 NSMutableArray xcode에 double을 추가하는 방법

어떤 이유로 나를 위해이 실 거예요 작업이 입력은 더블,

array = [[NSMutableArray alloc] init];
inputted = [input.text doubleValue];
[array addObject:[NSNumber numberWithDouble:inputted]];
NSLog(@"%i",array.count);

배열이있는 NSMutableArray이다

도와주세요 입력 텍스트 필드 일어나는 모든 것은 하나는하지만, 저장입니다 마지막으로 입력 한 것을 삭제합니다. 입력 한 모든 것을 저장하도록 어떻게 만들 수 있습니까?

+0

디버거에서 코드를 단계별로 실행하면 예상되는 'double'값이 "입력"됩니까? NSLog의 결과는 무엇입니까? "0"? –

+0

NSLog 결과는 1입니다. 아무리 입력해도 아무리 입력해도 아무런 문제가 없습니다. –

+0

NSLog (@ "% g", [array objectAtIndex : 0])도 마찬가지입니다. 내가 5를 입력하면 숫자를 저장할 수있다. 나에게 준다. 4.04411e-316 왜?!?!? –

답변

1

함수를 수행 할 때마다 항상 "array"변경 가능한 배열을 다시 만들고 초기화하는 것이므로 "1"(배열에 하나의 객체)의 결과를 얻는 것은 당연한 일입니다.

배열을 한 번만 초기화하고 밖으로 이동하고 다른 코드 (예 : 다른 함수 또는 다른 것으로)를 옮기면 변경 가능한 배열에 다른 객체가 추가되고 변경 가능한 배열에 객체를 추가 할 때마다 카운트가 증가하는 것을 볼 수 있습니다.

의미가 있습니까?

+0

veiwDidLoad에 넣어 두었습니까? 그냥 충돌을 당했을 때 if 문에 넣고 한 번만 지나치게해야하나요? –

+0

배열을 한 번만 생성하고 초기화하십시오.보기 컨트롤러의 인스턴스 변수로 사용하는 경우 한 가지 방법입니다. 그런 다음 언제든지 뷰 컨트롤러 객체 (및 배열)가 살아있을 때마다 배열에 숫자 객체를 추가 할 수 있습니다. –

+0

ARC를 사용하지 않는다면 메모리 관리를 올바르게 수행해야합니다. (ARC를 사용하더라도 메모리 관리가 올바르지 만 많은 일이 자동으로 처리됩니다.) 그렇게하지 않은 이유 때문에보고 있던 충돌을 추측합니다. –

관련 문제