簡體   English   中英

obj-c轉Swift轉換代碼

[英]obj-c to Swift convert code

因此,我試圖將一些obj-c代碼轉換為swift,但我陷入其中。 我該如何迅速做這樣的事情?

- (void)sometMethod:(NSString *)s {
NSString * crlfString = [s stringByAppendingString:@"\r\n"];
uint8_t *buf = (uint8_t *)[crlfString UTF8String];}

真正的問題是這條線

uint8_t *buf = (uint8_t *)[crlfString UTF8String];

您想對UTF-8緩沖區做什么? 通常,將字符串直接轉換為NSData對象更為方便。 但是,您也可以將Obj-C代碼一一轉換為Swift。 這是兩個變體:

import Foundation

func appendCRLFAndConvertToUTF8_1(s: String) -> NSData {
    let crlfString: NSString = s.stringByAppendingString("\r\n")
    let buffer = crlfString.UTF8String
    let bufferLength = crlfString.lengthOfBytesUsingEncoding(NSUTF8StringEncoding)
    let data = NSData(bytes: buffer, length: bufferLength)
    return data;
}

func appendCRLFAndConvertToUTF8_2(s: String) -> NSData {
    let crlfString = s + "\r\n"
    return crlfString.dataUsingEncoding(NSUTF8StringEncoding)!
}

let s = "Hello 😄"
let data1 = appendCRLFAndConvertToUTF8_1(s)
data1.description

let data2 = appendCRLFAndConvertToUTF8_2(s)
data2.description

data1 == data2

而且,如果您要遍歷UTF-8代碼單元而不處理緩沖區,請使用以下方法:

for codeUnit in String.utf8 {
    println(codeUnit) 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM