2010-02-01 52 views
1

我正在創建一些代碼,它將在字符之間找到空格,並在空格之前和空格之後使用字符。這些字符存儲在NSString中。這是我到目前爲止,但是,它沒有看到空的字符。Objective-C中的空字符

NSString *tempTitle = self.title; 
unsigned int indexOfSpace; // Holds the index of the character with the space 
unsigned int titleLength = (unsigned int)self.title.length; // Holds the length of the title 
for (unsigned int count = 0; count < titleLength; count++) 
{ 
    if ([tempTitle characterAtIndex:count] == "") // If the character at the index is blank, store this and stop 
    { 
     indexOfSpace == count; 
    } 
    else // Else, we keep on rollin' 
    { 
     NSLog(@"We're on character: %c", [tempTitle characterAtIndex:count]); 
    } 
} 

我試過nil,空字符串( 「」)和 「」,但無濟於事。有任何想法嗎?

+1

'indexOfSpace == count;'包含一個雙等號。你是否認爲這是一個等號? – cmptrgeekken

+0

哎呀,我沒有嘿嘿。謝謝! – skylerl

回答

4

您的空間字符應該用單引號,而不是雙引號。單引號讓你在C. char型(雙引號創建一個字符串,基本上充當char *,絕不會通過你的比較)。

-[NSString characterAtIndex:]返回一個類型unichar,這是一個unsigned short,所以你應該能夠直接比較這個空間字符' ',如果這就是你想要做的。

請注意,零和空字符串,在這裏沒有用處 - 既不是實際的字符,並且在任何情況下您的字符串將永遠不會「包含」這些。

您還應該看到用於直接在字符串中查找字符的NSString方法,例如, -[NSString rangeOfString:]及其堂兄弟。這可以防止你自己編寫循環,但不幸的是這些語法有點語法冗長。

+0

啊這個工作!謝謝!我會研究rangeOfString方法,如果它像你所說的那樣冗長,我可能會保留我的方法,因爲它正在工作。 – skylerl

+0

如果你不止一次地這樣做,想要一個更簡單的界面,你可以考慮在NSString中添加一個「類別」(搜索這個)到一個透明的地方提供功能。 –