2013-06-25 54 views
0

我想循環內我的數組對象,並想知道如何檢查其中的對象的內容,然後做一些事情時,我的搜索doesn'不適用。循環通過NSArray和檢查Objective-C中的對象

例如:

myArray = @[@"A1", @"A2", @"A3", @"B1", @"B2", @"B3", @"C1", @"C2", @"C3"]; 

我想檢查myArray的內容,如果對象包含字母A,我會真正創建一個按鈕,直到我創建一排按鈕與對象字母A如果它包含一個不同的字母,說B,我會在字母的下面創建一排不同的按鈕。

它看起來是這樣的:

[A1] [A2] [A3] 
[B1] [B2] [B3] 
[C1] [C2] [C3] 

我想這樣做一個快速列舉這樣的:

for (NSString *string in myArray) 
{ 
    if (// string has letter A) 
    { 
     Add string to array of A 
    } 
    else if (// string has letter B) 
    { 
     Add string to array of B 
    } 
    else if (// string has letter C) 
    { 
     Add string to array of C 
    } 
} 

但如果我這樣做,我不知道正確的和快速。任何幫助,將不勝感激。謝謝!

+0

假設'if'語句條件正確,您發佈的內容看起來正確。你的問題是什麼? – rmaddy

+0

如何按照上圖所示的方式記錄或映射按鈕?按鈕將放置在「UIScrollView」中。 – jaytrixz

回答

0

這種方法可能會間接幫助。我不完全確定被問到的是什麼,所以你要這樣做。

如果要按前綴進行收集,請構建一個NSMutableDictionary,其鍵值爲@"A", @"B", ...,值爲NSMutableArray的實例。對於您的myArray中的每個字符串,請將其前綴作爲查找字典中數組值的鍵,然後添加。大意如下

東西:

NSArray *myArray = @[@"A1", @"A2", @"A3", @"B1", @"B2", @"B3", @"C1", @"C2", @"C3"]; 
NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 
for (NSString *s in myArray) { 
    if ([s length] < 1) { 
     continue; 
    } 
    NSString *key = [s substringToIndex:1]; 
    if (![dict objectForKey:key]) { 
     [dict setObject:[NSMutableArray array] forKey:key]; 
    } 
    NSMutableArray *bucket = [dict objectForKey:key]; 
    [bucket addObject:s]; 
} 

這種做法,而這又可能不會直接回答你的問題,可能證明是有益的。它還具有可擴展的優點 - 不需要另一個if子句。

編輯:「PO字典」的上述控制檯輸出讀取

(lldb) po dict 
$2 = 0x0a33e660 { 
    A =  (
     A1, 
     A2, 
     A3 
    ); 
    B =  (
     B1, 
     B2, 
     B3 
    ); 
    C =  (
     C1, 
     C2, 
     C3 
    ); 
} 
+0

我基本上想要映射所有的電影院座位。我有一系列可用座位和一系列所有座位。我已經設法將兩個陣列與可用和可用的座位合併,我只想在我的滾動視圖中映射座位。 – jaytrixz

+0

我會試試這個。我基本上想要消除多個if的使用,因爲這些字母的範圍可以高達字母Z. – jaytrixz

+0

如何獲得包含所有鍵和數組對象的主字典?當它填滿某個字母的所有值時,該桶不斷變空。 – jaytrixz

0

使用NSRange查找字符串中的字符,並做UR的東西。像這樣 嘗試:

for (NSString *string in myArray) 
    { 
     if ([string rangeOfString:@"A"].location != NSNotFound)//Contains "A" 
     { 
      Add string to array of A 
     } 
     else if ([string rangeOfString:@"B"].location != NSNotFound)//Contains "B" 
     { 
      Add string to array of B 
     } 
     else if ([string rangeOfString:@"C"].location != NSNotFound)//Contains "C" 
     { 
      Add string to array of C 
     } 
    } 

ope this這有助於你。