【问题标题】:Easy bit-wise operation on bit string in iOS在 iOS 中对位串进行简单的逐位操作
【发布时间】:2013-10-24 04:15:22
【问题描述】:

我正在开发一个使用大量长位字符串 (100b) 和大量按位运算的 iOS 应用程序。我知道 C++ 中有非常好的 bitset 类,但我不能在 Xcode 中包含头文件。 Apple 有一个支持位串的 CFBitVector 类,但它没有按位操作。有没有一种方法可以让我使用位字符串并使按位运算像处理 unsigned int 一样简单(因此按位运算只是 a & b)?

现在我所拥有的是使用 CFBitVector 并为按位与、按位或和按位非进行一系列函数调用。但在这种情况下,一个简单的单行按位操作可能会导致一个 4 行函数调用创建大量我并不真正需要的临时变量。

【问题讨论】:

  • 为什么不能使用C++?你确定你编译为 Objective-C++ 而不仅仅是 Objective-C 吗?您可以更改文件名(从 .m 到 .mm)或更改 Xcode 设置。
  • 您可以通过将文件扩展名更改为 .mm 来使用 smae c++ 类
  • 真的吗?我该怎么做呢?我认为将文件名更改为 .mm 会使整个事情崩溃。
  • 如何更改 Xcode 设置?
  • @TengyuLiu:您可以在 Xcode Project Navigator 中简单地重命名文件。

标签: ios objective-c bit-manipulation


【解决方案1】:

(来自 cmets:) 如果编译文件,您可以混合使用 Objective-C 和 C++ 代码 作为 Objective-C++:只需在 Xcode 项目中将文件扩展名从 .m 重命名为 .mm 导航器。

当在您的 .h 文件中包含 C++ 头文件(例如 <bitset>)时,请记住,这 仅当 .h 文件被(Objective-)C++ 文件包含时才有效,如果它被包含则无效 通过 Objective-C 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多