将Objective C中的unsigned long,unsigned char传递给Swift

时间:2019-07-07 05:42:36

标签: ios objective-c swift

我将我的Objective C项目更改为Swift项目。在目标C中,我使用了unsigned long,Unsigned char。

const char * bytesIn = [self bytes];
unsigned long bytesLength = range.location + range.length;
unsigned long   bytesOffset = range.location;
NSMutableData * dataOut = [NSMutableData data];

BOOL currIsEOF = NO;
unsigned char currChar;         /* current character */
unsigned char charBuf[MAX_READ];    /* buffer of already read characters */
int count;                       /* number of characters in a run */

/* prime the read loop */
currChar = bytesIn[bytesOffset];
bytesOffset = bytesOffset + skip;
count = 0;

上面是代码。任何人都可以帮助将其更改为Swift。据我了解,在Swift中没有 const char

1 个答案:

答案 0 :(得分:0)

您的代码段看起来像是一个较大函数的一部分,该函数从NSData对象中提取了一些字节。 Swift提供了DataNSData的桥梁,并提供了很多功能来操纵字节缓冲区Swift集合。您应该查看代码段所包含的较大功能,然后使用Data提供的功能来重铸算法。

BTW Swift提供了无符号类型,由于某种原因,它将它们视为Special-Use Numeric Types,并且还提供了以C类型命名的类型别名,请参见C Interoperability。因此,如果您有使用无符号类型和/或Objective-C代码的算法,则可以将其写入/转换为Swift-实际上,当无符号数字确实是{{ 3}};-)