2012-08-27 3 views
0

으로 편집하는 데 어려움이 있습니다. 내 프로그램이 원하는 방식으로 사용할 수 있도록이 nsmutable 배열을 구성하려고했습니다.NSMutableArray를 NSNumber 데이터 유형

표준 NSMutable 배열로 시작한 다음 addobject : 메서드를 사용하여 채우고 더 많은 NSMutableArrays (어레이의 배열)를 채 웁니다. 이 때문에 나는 ObjectAtIndex : 메서드를 많이 호출해야하며 또한 replaceObjectAtIndex : withObject : 메서드를 많이 사용해야합니다. 또한 NSMutableArrays (적어도 생각)에 유형 ID를 가진 광고 객체 만 있기 때문에 NSNumbers로 모든 이중 변수를 변환 한 다음 다시 수학을 위해 복식으로 반환 한 다음 NSNumbers로 다시 저장해야했습니다. 효율성이 거의 없습니다.

그러나 가장 큰 문제는,이 코드 (이전의 일들은 내가 대한 호기심 단지 물건이었다) :

, 난 그냥 약간의 firrst을 추가

엑스 코드는 문제가 두 번째 줄에 말한다

NSMutableArray * array = [tmp objectAtIndex x]; 
[tmp replaceObjectAtIndex:x withObject: [array replaceObjectAtIndex:2 withObject: result]]; 
문맥에. 결과는 NSNumber이고 tmp는 NSMutableArray입니다. Xcode는 오류가 "호환되지 않는 유형 'id'의 매개 변수에 'Void'를 보내는 중임을 나타냅니다.

정말 도움이 되었으면합니다. :). 감사!

+0

'결과'란 무엇입니까? –

+1

이상한 오류 메시지가 나타나면 복잡한 표현을 개별 행으로 나누는 것이 좋습니다. 이를 통해 어떤 특정 구성이 오류를 발생시키고 있는지 판별 할 수 있습니다. –

+0

감사 핫 릭. 그게 잭 로렌스도 내 대답에 대답했다 :) 것 같다. 당신이 probbaly 짐작했던 것에 따라 나는 비교적 새롭고, 지난 밤에 3am에 이것을했다 : /. 나는 이것을 게시했고, 지난 밤에 충돌했다 :). –

답변

3

라인을 [tmp replaceObjectAtIndex:x withObject: [array replaceObjectAtIndex:2 withObject: result]];으로 세분화하십시오.

이런 문제가 발생하고 중첩 된 메서드가 여러 개있을 경우 가장 깊은 메서드 호출에서 시작하여 문서를 확인하여 각 메서드가 반환하는 것을 확인하십시오. 이 경우 대답은 간단하지만 항상 좋은 습관이다 :

-[NSMutableArrray replaceObjectAtIndex:withObject:] 반환 void 따라서 :

[tmp replaceObjectAtIndex:x withObject: void] 따라서 엑스 코드 정당에 대해 불평한다 replaceObjectAtIndex:withObject:에서 두 번째 인수로 void을 전달합니다.

+1

감사합니다 !!!! 나는 무작위로 irrelavnet 물건의 시간을 tring처럼 :)에 stairing했다 :). 일단 당신이 그것을 보았 으면 간단 : P. –

1

replaceObjectAtIndex의 반환 유형은 무효이므로이 오류가 발생합니다. 귀하의 의도는 배열을 추가하는 것이지만, 전체 표현식의 결과를 그냥 추가하는 것입니다. 이는 무효입니다. replaceObjectAtIndex 메서드를 별도의 줄로 사용하고 array를 개체 인수로 사용해야합니다.

+0

댓글을 주셔서 감사합니다! :) 이것은 참으로 문제였다 :). –