2012-09-06 18 views
1

我正在做一個搜索功能,它可以在iphone和iphone模擬器上正常工作,但不是ipad模擬器。當我進入我的值來搜索它賦予基本上說的NSRange錯誤是零:NSRange返回零在模擬器

'NSInvalidArgumentException' 的,理由是: '* - [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]; 
    }  

} 

任何人都可以向我解釋爲什麼會發生這種情況,或者有什麼我可以解決這個問題嗎?我不應該擔心,因爲它在實際設備上的工作很好嗎?

解決 我想,因爲我是在不改變值轉換成字符串調用SEARCHTEXT(或searchBar.text)第一,它返回零。所以我只是在頭文件中聲明瞭一個字符串。

stringValue = searchBar.text; 

回答

2

NSRange不能爲零 - 它不是一個對象,甚至不是一個指針。

這很可能是searchText即零。

如果它在模擬器或設備上有問題,您必須修復它,因爲它有一天失敗。

+0

我一開始也這麼認爲。我檢查了searchText,我實際上改爲searchBar.text,具有價值。 – Far