2012-03-23 19 views
0

檢索值當我的NSLog我的NSMutableArray,我所得到的是以下如何從下面的NSMutableArray

{ ABSNFGH True, 
FDGJDKG False 
GFKFLDL True 
PDHJHN True 
FHKDMD True 
DSHDMD False) 

的問題是,我沒有創建此數組。但我想將每個條目(例如ABSNFGH)存儲在一個字符串中,並將其相應的狀態存儲在for循環中的bool中。我怎樣才能做到這一點?

+0

您是否可以將實際的NSLog輸出剪切並粘貼到問題中?沒有逗號和NSLog的其他分隔符,數據的結構是不清楚的。 – danh 2012-03-23 05:48:31

回答

1

假設我們命名您的數組作爲yourArray

yourArray -> { ABSNFGH True, 
        FDGJDKG False, 
        GFKFLDL True, 
        PDHJHN True, 
        FHKDMD True, 
        DSHDMD False } 

您需要添加這個循環:

for(int i = 0; i<[yourArray count];i++) 
{ 
    NSArray *array = [[yourArray objectAtIndex:i] componentsSeperatedByString:@" "]; 
    if([array count]>1) 
    { 
     NSString *stringValue = [array objectAtIndex:0]; 
     BOOL val = [[array objectAtIndex:1] boolValue]; 
    } 
} 

我認爲這應該工作。我沒有嘗試過個人實施,但可能會這樣做。

編輯:

yourArray最好應該是這樣的:

( 
    { 
     stringVal = 'ABSNFGH' 
     boolVal = True 
    }, 
    { 
     stringVal = 'FDGJDKG' 
     boolVal = False 
    }, 
    { 
     stringVal = 'GFKFLDL' 
     boolVal = True 
    } 
) 

參考此鏈接。在這裏你只需要用NSDictionary代替object,就完成了。

Making an array of Objects in Objective-C.

在這裏,我已經修改了從該鏈接ennuikiller的回答,讓你瞭解你的情況:

@interface控制器

NSMutableArray *yourArray; 

@end 
@implementation Controller 

-(void) viewDidLoad { 
................ 
NSMutableArray *yourArray = [NSMutableArray initWithCapacity:40]; 

} 

-(IBAction)doSomeWork 
{ 
     NSDictionary *object = [[NSDictionary alloc] init]; 
     [object setValue:@"ASDFG" forKey:@"stringVal"]; 
     [object setBool:False forKey:@"boolVal"]; 

     [yourArray addObject:object]; 

} 
@end 

希望這有助於。

+0

儘管你需要使用'BOOL val = [[array objectAtIndex:1] boolValue]' – ikuramedia 2012-03-23 05:46:00

+1

@ikuragames:這個應該可以工作,如果原始數組包含字符串的話,我現在編輯了我的答案。我可以將這種數組想象成'yourArray'。更好的選擇可能是將'yourArray'作爲字典數組,每個字典包含一個字符串和相關的BOOL值。但正如讓·保羅·斯科特所說的那樣,他不是在創造這個陣列,這是唯一可以解決的方法。再次感謝! – 2012-03-23 05:53:43

+0

你能解釋一下我怎麼能把'yourArray'作爲字典數組。這將非常有幫助。我希望你可以加上你的答案。 – 2012-03-23 06:15:32