2012-10-09 42 views
1

有人可以解釋什麼位置和長度代表NSRange。 如果我用它在這方面使用NSRange rangeOfString

NSRange range = [self.display.text rangeOfString:@"."]; 
if(range.location == NSNotFound){ 
self.display.text = [self.display.text stringByAppendingString:@"."]; 

什麼位置代表,可以有人解釋該代碼。另外我在哪裏可以找到更多關於屬性的信息,例如位置>我在頭文件中找到它作爲NSUInteger,但它沒有描述實際位置。

+3

[NSRange在docs](http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/uid/ 20000018-SW23) –

回答

2

按照official doc

rangeofString用來查找並返回接收器內的給定的字符串的第一個匹配的範圍內。

原始的字符串中第一次出現的索引將被存儲在NSRangelocation屬性。如果沒有發現該方法,將返回NSNotFound

所以你的代碼會附加你正在測試的字符串'。'。如果這個角色沒有在其中找到。

+0

感謝您花時間幫助我。現在它更有意義。基本上該位置正試圖找到「。」。在我的self.text.display中,如果它找到了「。」那麼它將不會添加另一個,但是如果它沒有找到「。」。在我的顯示器中,它會將這個字符串附加到顯示的末尾。 – user1295568

+0

歡迎您對我的回答進行驗證,或者給予您最滿意的回答。 – tiguero

1

location字段是NSRange的位置或索引 - 在您的情況下,它是字符串「。」的索引。在原始字符串內。 length字段是NSRange實施的範圍的長度。

您還可以在reference文檔中找到定義。

+0

感謝您花時間幫助我。 – user1295568