Swift 2 - 将 objective-c #define 转换为 swift
Swift 2 - Convert objective-c #define to swift
我正在尝试将 project 从 objective-c 转换为 swift。我在 swift.
上转换 #define 时遇到一些问题
我有的是:
#define Mask8(x) ( (x) & 0xFF )
#define R(x) ( Mask8(x) )
#define G(x) ( Mask8(x >> 8 ) )
#define B(x) ( Mask8(x >> 16) )
UInt32 color = *currentPixel;
printf("%3.0f ", (R(color)+G(color)+B(color))/3.0);
如何将其转换为 swift 中的变量?
您问题中的 4 个 #define
不适用于 Swift,请参阅 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithCAPIs.html
中标题为复杂宏的部分
如果您想在 Swift 中使用它们的等效项,您将需要 re-implement 在 Swift 中使用它们。一个简单的方法,假设宏参数是 UInt32
类型,就像在您的示例中一样,可能如下所示:
func swiftMask8(x:UInt32) -> UInt32
{
return x & 0xFF
}
func swiftR(x:UInt32)->UInt32
{
return swiftMask8(x)
}
...
当然,您可以删除 swift
部分,只调用函数 Mask8
、'R` 等,因为它们的 Objective-C 等价物对 Swift 无论如何。
我正在尝试将 project 从 objective-c 转换为 swift。我在 swift.
上转换 #define 时遇到一些问题我有的是:
#define Mask8(x) ( (x) & 0xFF )
#define R(x) ( Mask8(x) )
#define G(x) ( Mask8(x >> 8 ) )
#define B(x) ( Mask8(x >> 16) )
UInt32 color = *currentPixel;
printf("%3.0f ", (R(color)+G(color)+B(color))/3.0);
如何将其转换为 swift 中的变量?
您问题中的 4 个 #define
不适用于 Swift,请参阅 https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithCAPIs.html
如果您想在 Swift 中使用它们的等效项,您将需要 re-implement 在 Swift 中使用它们。一个简单的方法,假设宏参数是 UInt32
类型,就像在您的示例中一样,可能如下所示:
func swiftMask8(x:UInt32) -> UInt32
{
return x & 0xFF
}
func swiftR(x:UInt32)->UInt32
{
return swiftMask8(x)
}
...
当然,您可以删除 swift
部分,只调用函数 Mask8
、'R` 等,因为它们的 Objective-C 等价物对 Swift 无论如何。