簡體   English   中英

如何在objc中循環字節數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM