簡體   English   中英

比較NSData與字節序列?

[英]Compare NSData with byte sequence?

注意:在其他問題中,它們比較存儲在NSData對象中的值,而不是其字節。

我想要執行以下操作:

NSData *d = ...;
if (d == "fff1") {
  ...
}

我發現的唯一解決方案:

NSData *d = ...;
NSString *str = [NSString withFormat:@"%@", d];
if ([str isEqualToString:@"<fff1>"] {
  ...
}

但我不喜歡這樣,我需要在比較中添加額外的周圍環境。 有更好的解決方案嗎?

為了比較原始數據,可以使用memcmp

NSData *dataA;
void *someBuffer;
if(memcmp([dataA bytes], someBuffer, dataA.length) == 0) ; //they are the same

請注意,對於任何緩沖區,您都應注意長度不要太大。

編輯:添加了 NSData 過程:

或者更好的是,您可以將字符串轉換為NSData並在NSData上進行比較:

    NSData *d = ...;
    if([d isEqualToData:[NSData dataWithBytes:"fff1" length:sizeof("fff1")]]) {

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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