2012-11-05 5 views
0

배열의 마지막 결과를 얻었을 때 사라질 다음 단추가 있는데 배열의 첫 번째 결과에있을 때 이전 단추가 사라지게하고 싶습니다. 나는 하나의 결과 만 발견 될 때 그들을 사라지게하는 방법을 알아 냈습니다.다음 및 이전 버튼

연락처가 배열입니다.

다음 버튼 :

 //button look 
if (contacts != nil) { 
    if ([contacts count] > 1) [self.view addSubview:nextButton]; 

이전 버튼 :이

if ([contacts count] < (index-1)) [self.view addSubview:nextButton]; 

내가 포인터와 정수 ('NSUInterger'의 비교를 주문이 오류 "를 얻을 시도

 //button look 
if (contacts != nil) { 
    if ([contacts count] > 1) [self.view addSubview:previousButton]; 

(일명 'unsigned int')와 'char * (*) (const char *, int)') "버튼은 사라져 버리지 않습니다. 마지막 결과가 나옵니다.

도움을 주시면 감사하겠습니다.

+1

nil은 배열에 더 이상 요소가 포함되지 않는다고 말합니다. U는 확인하는 데 사용할 수 없습니다. objectAtIndex : 0 및 objectAtIndex : [연락처 수] - 1을 시도하십시오. – lakesh

+0

나는 당신이하려고하는 것을 이해하지 않습니다. '[contacts count] <(index-1)'이라면'nextButton'을 숨기려고합니까? –

+0

연락처 수가 JSpencerB

답변

0

색인처럼 보이는 것은 NSUInterger입니다. count는 int이고 NSUInteger는 부호없는 정수에 typedef입니다. 어느 곳에서든지 int로 설정하거나 int로 typecasting하여 인덱스를 변경해보십시오.

// To remove button 
if ([contacts count] < (index-1)) [nextButton removeFromSuperview]; 

또는

을 : 당신의 논리가 맞다면, 버튼에 대한 부분에 대한

, 당신은 숨기거나과 같이 뷰에서 제거 할 수 있습니다보기에서 "nextButton"를 제거하려고
//To hide button 
if ([contacts count] < (index-1)) nextButton.hidden = YES; 
+0

인덱스를 int로 변경했고 오류가 사라졌습니다. 이제는 버튼이 자신이해야 할 일을하지 않게됩니다. – JSpencerB

+0

알았어. 내 대답을 편집하게 해. 내가 너를 도울 수 있는지 알아봐. –

+1

가 작동합니다. 고마워요! 나는 조금 변경했다. if ([contacts count] JSpencerB

0

절대로 superView에서 제거하지 않으므로 절대로 사라지지 않습니다. 버튼의 숨겨진 속성 (예 :

[nextButton setHidden:NO]; 

)을 숨기려면 버튼을 사용해야합니다.

오류가 인덱스 엔티티에서 발생한 것일 수 있습니다. NSUinterterger로 타입 변환 했습니까? uint 또는 int로 변경하십시오. 그냥 알려줍니다 nil을 배열에 포함 할 더 이상 요소가 ...이 도움이

0
if ([contacts objectAtIndex:[contacts count]-1]) 
{ 
    [self.view addSubview:nextButton]; 
} 
if([contacts objectAtIndex:0) 
{ 
[self.view addSubview:previousButton]; 
} 

희망 : (D 그냥 조금 늦게 게시, 그러나 이것은 다른 대답에 언급 된). U는 그것을 검사하는데 사용할 수 없습니다.

관련 문제