2012-09-06 4 views
1

검색 기능을 만들고 있는데 아이폰과 아이폰 시뮬레이터에서는 잘 작동하지만 ipad 시뮬레이터에서는 제대로 작동하지 않습니다. ,시뮬레이터에서 nil을 반환하는 NSRange

'NSInvalidArgumentException'이유 : 나는 검색 내 값을 입력 할 때 그것은 기본적으로 NSRange 말하는 오류가 전무하다 준다 '*- [NSCFString rangeOfString : 옵션 : 범위 : 로케일 :] : 무기 호 인수'

내가 가진 것들.

for (int i = 0, c = names.count; i < c; ++i) { 
    sFirst = [firstArray objectAtIndex:i]; 
    sSecond = [secondArray objectAtIndex:i]; 
    NSRange result = [sFirst rangeOfString:searchText options:NSCaseInsensitiveSearch]; 
    NSRange r = [sSecond rangeOfString:searchText options:NSCaseInsensitiveSearch]; 
    if (result.location != NSNotFound) { 
     [searchedFirst addObject:sFirst]; 
     [searchedSecond addObject:sSecond]; 
    }  
    if (r.location != NSNotFound) { 
     [searchedFirst addObject:sFirst]; 
     [searchedSecond addObject:sSecond]; 
    }  

} 

왜 이런 일이 발생하는지 설명하거나이 문제에 관해 할 수있는 일이 있습니까? 실제 장치에서 제대로 작동 한 이후로 걱정하지 않아야합니까?

내가 문자열로 값을 변경하지 않고 검색 텍스트 (또는 searchBar.text)를 호출 한 이후 같아요 먼저이 전무를 반환 해결했다. 그래서 방금 헤더 파일에 문자열을 선언했습니다.

stringValue = searchBar.text; 

답변

2

NSRange는 아무 것도 될 수 없습니다. 객체가 아니며 포인터도 아닙니다.

아마도 대부분 searchText입니다. 이는 0입니다.

그리고 시뮬레이터 나 장치에서 버그가있는 경우 이 언젠가 실패하므로 수정해야합니다.

+0

처음에는 그렇게 생각했습니다. 나는 실제로 searchBar.text로 변경된 searchText를 체크 아웃했다. – Far

관련 문제