Swift3 0語言教程使用指標建立和初始化字串

2021-09-08 12:12:19 字數 3746 閱讀 6106

swift3.0語言教程使用指標建立和初始化字串

swift3.0語言教程使用指標建立和初始化字串蘋果的swift團隊花了不少功夫來支援c的一些基礎特性。c語言中為我們提供了指標,swift也不例外,開發者可以使用指標去建立和初始化字串。

(1)在nsstring中init(bytes:length:encoding:)方法可以從給定字串按照指定獲取方向,得到指定個數的字元,然後使用這些字元建立和初始化字串。其語法形式如下:

convenience init?(bytes: unsafepointer, length len: int, encoding: uint)

其中,bytes用來指定乙個常量指標,length用來從使用的位元組中指定位元組數,encoding用來指定應用在位元組中的字元編碼。

【示例1-9】以下將使用init(bytes:length:encoding:)方法建立和初始化字串。

import foundation

var str=nsstring(bytes: "hello,world",length: 8,encoding: string.encoding.utf8.rawvalue)

print(str!)

執行結果如下:

hello,wo

(2)init(bytesnocopy:length:encoding:freewhendone:)方法也是從給定字串按照給定獲取方向,得到指定個數的字元,通過這些字元建立和初始化字串,但是此方法需要對儲存器中資料的釋放進行設定。其語法形式如下:

convenience init?(bytesnocopy bytes: unsafemutablepointer, length len: int, encoding: uint, freewhendone freebuffer: bool)

其中,引數說明如下:

q  bytes:用來指定乙個變數指標。

q  len:用來用來從使用的位元組中指定位元組數。

q  encoding:用來指定應用在位元組中的字元編碼。

q  flag:用來對儲存器中資料的釋放進行設定。當設定為true時,可以將儲存器中不再使用的資料進行釋放,反之,不釋放。

【示例1-10】以下將使用init(bytesnocopy:length:encoding:freewhendone:)方法建立和初始化字串。

import foundation

var a=nsstring(string: "hello,world")

var b=a.utf8string!

var c:unsafemutablepointer=unsafemutablepointer(b)

var str=nsstring(bytesnocopy: c,length: 8,encoding: string.encoding.utf8.rawvalue,freewhendone: true)

print(str!)

執行結果如下:

hello,wo

(3)init(characters:length:)方法可以從乙個c語言字串獲得指定個數的元素,通過這些元素對字串進行建立和初始化,其語法形式如下:

convenience init(characters: unsafepointer, length: int)

其中,characters用來指定乙個常量指標,length用來從使用的字元中指定字元個數。

【示例1-11】以下將使用init(characters:length:)方法建立和初始化字串。

import foundation

let str1=nsstring(string: "hello")

let char:[unichar]=[str1.character(at: 0),str1.character(at: 1),str1.character(at: 2),str1.character(at: 3),str1.character(at: 4)]

var str2=nsstring(characters: char,length: 3)

print(str2)

執行結果如下:

hel(4)init(charactersnocopy:length:freewhendone:)方法也是從乙個c語言字串獲得指定個數的元素,通過這些元素對字串進行建立和初始化,但是此方法需要對儲存器中資料的釋放進行設定。其語法形式如下:

convenience init(charactersnocopy characters: unsafemutablepointer, length: int, freewhendone freebuffer: bool)

其中,引數說明如下:

q  characters:用來指定乙個變數指標。

q  length:用來從使用的字元中指定字元個數。

q  freebuffer:用來對儲存器中資料的釋放進行設定。當設定為true時,可以將儲存器中不再使用的資料進行釋放,反之,不釋放。

【示例1-12】以下將使用init(charactersnocopy:length:freewhendone:)方法建立和初始化字串。

import foundation

let a=nsstring(string: "swift")

var b:[unichar]=[a.character(at: 0),a.character(at: 1),a.character(at: 2),a.character(at: 3),a.character(at: 4)]

var str=nsstring(charactersnocopy: &b,length: 3,freewhendone:true)

print(str)

執行結果如下:

swi(5)init(utf8string:)方法可以使用utf8格式的字串建立和初始化乙個字串,其語法形式如下:

convenience init?(utf8string nullterminatedcstring: unsafepointer)

其中,nullterminatedcstring用來指定乙個常量指標。

【示例1-13】以下將使用init(utf8string:)方法建立和初始化字串。

import foundation

var str=nsstring(utf8string: "swift")

print(str!)

執行結果如下:

swift

(6)init(cstring:encoding:)方法可以從乙個c語言字串獲得元素,通過這些元素對字串進行建立和初始化,其語法形式如下:

convenience init?(cstring nullterminatedcstring: unsafepointer, encoding: uint)

其中,nullterminatedcstring用來指定乙個常量指標,encoding是nullterminatedcstring的編碼。

【示例1-14】以下將使用init(cstring:encoding:)方法建立和初始化字串。

import foundation

var str=nsstring(cstring: "hello",encoding: string.encoding.utf8.rawvalue)

print(str!)

執行結果如下:

hello

swift3.0語言教程使用指標建立和初始化字串

Swift3 0語言教程使用URL字串

swift3.0語言教程使用url字串,和路徑一樣,url其實也是字串,我們可以將這些字串稱為url字串。本小節將講解url字串的使用。1.編碼 現在的網路存在很多的洩漏資訊的危險,為了解決這一危險,url字串提供了編碼的的方式,在nsstring中開發者可以使用addingpercentencod...

Swift3 0語言教程使用URL字串

swift3.0語言教程使用url字串,和路徑一樣,url其實也是字串,我們可以將這些字串稱為url字串。本小節將講解url字串的使用。1.編碼 現在的網路存在很多的洩漏資訊的危險,為了解決這一危險,url字串提供了編碼的的方式,在nsstring中開發者可以使用addingpercentencod...

Swift3 0語言教程使用URL字串

swift3.0語言教程使用url字串,和路徑一樣,url其實也是字串,我們可以將這些字串稱為 url字串。本小節將講解 url字串的使用。1.編碼 現在的網路存在很多的洩漏資訊的危險,為了解決這一危險,url字串提供了編碼的的方式,在 nsstring 中開發者可以使用 addingpercent...