[英]how to loop in byte array in objc
unsigned int bytes[] = {153, 3, 1, 0, 0, 4};
我用這個
for(id b in bytes){
}
有一個錯誤
“unsigned int *”類型不是指向可快速枚舉的指針 object
一種方法...
unsigned int bytes[] = {153, 3, 1, 0, 0, 4};
int count = sizeof(bytes) / sizeof(unsigned int);
for (int i = 0; i < count; i++) {
NSLog(@"%u", bytes[i]);
}
您用作示例的代碼只是普通的舊代碼 C:
無符號整數字節 [] = {153, 3, 1, 0, 0, 4};
因此,要使用bytes
,您需要以普通的舊 C 方式進行操作:
for (int i = 0; i < sizeof(bytes); i++) {
// do something with bytes[i]
}
如果你想使用 Objective-C 的特性來做事,你會使用 NSArray 和 NSNumber:
NSArray<NSNumber*> *numbers = @[@(153), @(3), @(1), @(0), @(0), @(4)];
然后你可以使用快速迭代:
for (NSNumber *number in numbers) {
//do something with number
}
“unsigned int *”類型不是指向可快速枚舉的指針 object
你得到那個錯誤是因為for...in
是一個 Objective-C 結構,它只適用於支持NSFastEnumeration
的對象。 有關更廣泛的解釋,請參閱 NSHipster 上的NSFastEnumeration/NSEnumerator帖子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.