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