ios - NSData 到 NSNumbers 的 NSArray?

标签 ios objective-c swift

我从 Swift 转到 Objective-C,我遇到的一个问题是 NSData 似乎没有像 Swift 的 Data 那样枚举 UInt8 值的方法。存在具有类似标题的其他答案,但它们都处理属性列表,而我只有一桶 ASCII 字节。具体来说,我想在 Obj-C 中复制的代码是:

//Find the next newline in ASCII data given a byte offset
let subset = myData.advanced(by: offset)
var lineEnd: Data.Index = myData.endIndex

subset.enumerateBytes({ (memory, idx, stop) in
    let newline: UInt8 = 10

    for idx in memory.indices {
        let charByte = memory[idx]

        if charByte == newline {
            lineEnd = idx
            stop = true; return;
        }
    }
})

理想情况下,我想要一种将 NSArray 转换为 NSNumber 数组的方法,我可以从中提取 intValues。当然,如果有更好的方法,请告诉我。目标是使 Obj-C 代码尽可能类似于 Swift,因为我将同时维护这两个代码库。

最佳答案

访问 NSData 字节的唯一好方法是调用它的 -bytes 方法,它会为您提供指向其内部存储的 C 指针。

NSData *data = ...;
const uint8_t *bytes = data.bytes;
NSUInteger length = data.length;

for (NSUInteger i = 0; i < length; i++) {
    uint8_t byte = bytes[i];

    // do something with byte
}

关于ios - NSData 到 NSNumbers 的 NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45929969/

相关文章:

iphone - 亚马逊网络服务问题。我应该为网络服务付费吗?

ios - View 之间的索引值传递

ios - 如何将结构传递给 NSOperation Init

ios - 为什么我的 MapKit 标注 View 这么小,没有显示它需要显示的所有内容?

ios - 如何为不同的 xAxis 标签呈现自定义标签颜色?

ios - 推送和弹出时如何删除奇怪的垂直矩形区域

objective-c - 找不到适用于应用程序的有效 'aps-environment' 权利字符串

ios - 如何保存重新排列的表格 View 位置

ios - 固有尺寸与系统宽度/高度限制有什么区别?

ios - 在 iOS 中我可以使用什么来代替 NSBitmapImageRep? (水波纹示例)