我想創建一個布爾值的NSArray。請問我有多少人?NSArray充滿布爾
NSArray *array = [[NSArray alloc] init];
array[0] = YES;
這對我不起作用。
感謝
我想創建一個布爾值的NSArray。請問我有多少人?NSArray充滿布爾
NSArray *array = [[NSArray alloc] init];
array[0] = YES;
這對我不起作用。
感謝
NSArrays不是c數組。你不能訪問一個NSArray的值與array[foo];
但你可以在Objective-C中使用c類型數組沒有問題。
Objective-C的方法是:
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSNumber numberWithBool:YES]];
//or
[array addObject:@(NO)];
...
BOOL b = [[array objectAtIndex:0] boolValue];
....
[array release];
編輯:鏗鏘的新版本,現在的標準編譯器的Objective-C,瞭解Object subscripting。當你使用叮噹的新版本,你將能夠使用array[0] = @YES
使用[NSNumber numberWithBool: YES]
得到一個對象,你可以把收藏。
陣列[0] = [NSNumber的numberWithBool:YES];給我一個'不兼容的類型賦值'錯誤 – Lilz 2010-10-08 09:19:55
[數組addObject:[NSNumber numberWithBool:YES]] – 2010-10-08 09:22:33
好像你已經混淆了c數組與objc NSArray。 NSArray在Java中更像是一個list,你可以在其中添加對象,但不能像NSInteger,BOOL,double等值。如果你希望將這些值存儲在NSArray中,你首先需要創建一個可變數組:
NSMutableArray* array = [[NSMutableArray alloc] init];
,然後添加適當的對象給它(在這種情況下,我們將使用的NSNumber來存儲您的BOOL值):
[array addObject:[NSNumber numberWithBool:yourBoolValue]];
而這幾乎是它!如果要訪問bool值,只需要調用:
BOOL yourBoolValue = [[array objectAtIndex:0] boolValue];
乾杯, 的Pawel
我試圖,它給我***由於未捕獲的異常'NSInvalidArgumentException'終止應用程序,原因:'+ [ NSNumber numberWithBOOL:]:發送到類 – Lilz 2010-10-08 09:37:01
的無法識別的選擇器應該是[NSNumber numberWithBool:YES]。對不起,我的錯誤 – 2010-10-08 09:38:40
哦,非常感謝! – Lilz 2010-10-08 09:43:54