我有一個可變詞典,它允許人們選擇星期幾。一旦選擇了一天,狀態就會使用numberWithBool進行更新。從可變詞典中提取特定數據
當我的NSLog它看起來像這樣的輸出:
{
day = Monday;
isSelected = 1;
},
{
day = Tuesday;
isSelected = 0;
},
{
day = Wednesday;
isSelected = 0;
},
{
day = Thursday;
isSelected = 0;
},
{
day = Friday;
isSelected = 0;
},
{
day = Saturday;
isSelected = 0;
},
{
day = Sunday;
isSelected = 1;
}
我希望能夠提取所選擇的天,產生一個字符串的形式輸出。所以在這個例子中,輸出將是:週一,週日
我該怎麼做?
我創建的字典代碼如下:
NSMutableArray * tempSource = [[NSMutableArray alloc] init];
NSArray *daysOfWeek = [NSArray arrayWithObjects:@"Monday", @"Tuesday", @"Wednesday", @"Thursday", @"Friday", @"Saturday", @"Sunday",nil];
for (int i = 0; i < 7; i++)
{
NSString *dayOfWeek = [daysOfWeek objectAtIndex:i];
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:dayOfWeek, @"day", [NSNumber numberWithBool:NO], @"isSelected",nil];
[tempSource addObject:dict];
}
[self setSourceArray:tempSource];
[tempSource release];
感謝您的快速反應,我用解決方案2和它工作完美。此代碼用於跟蹤哪些選擇在表格視圖上旁邊有複選標記。我對iphone編程頗爲陌生,並被告知使用NSDirearies的NSArray是一種很好的方法。我可以看到使用NSDateComponents獲得標準名稱的好處,並且肯定會研究這一點。 – AndyC
實際上,通常一個對象的NSArray是管理對象然後在UITableView中顯示的好方法。如果objets的數量(= tableview中的行數)是動態的/非常量的,那麼使用NSDictionary的NSArray可能是一個好的解決方案。 **但是**通過'NSArray'方法('objetAtIndex' /'setObject:atIndex:')** AND **通過將'BOOL'值嵌入到'NSNumber'中非常痛苦和**,因爲您擁有常量單元數/天**(總是7)可能更容易操作C數組BOOL selected [7]而不是'NSNumber'的NSArray'嵌入'BOOL'。 – AliSoftware
感謝您的建議,您的意見是有道理的,我一定會按照您的建議來看待它 – AndyC