繁体   English   中英

Objective C 中的 unsigned long , unsigned char 到 Swift

[英]unsigned long , unsigned char in Objective C to Swift

我正在将我的 Objective C 项目更改为 Swift 项目。 在客观 CI 中使用了 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

您的代码片段看起来像是从NSData对象中提取一些字节的更大函数的一部分。 Swift 提供了连接到NSDataData ,并提供了大量的函数来操作字节缓冲区 Swift 集合。 您应该查看您的代码片段来自的更大的函数,并使用Data提供的函数重铸算法。

顺便说一句,Swift 提供无符号类型,出于某种原因,它将它们视为特殊用途数字类型,并且还提供以 C 类型命名的类型别名,请参阅C 互操作性 因此,如果您有使用无符号类型和/或 Objective-C 代码的算法,您可以将它们编写/翻译成 Swift - 事实上,当无符号数字确实很自然时,结果对于 Swift 人来说似乎是“特殊的”; -)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM