Неявное преобразование CString в Swift - PullRequest
0 голосов
/ 10 апреля 2019

Swift String s предоставляет метод withCString, который предоставляет указатель CString внутри замыкания.С другой стороны, когда я хочу передать swift String методу, импортированному из C, например,

func foo(_ ptr: UnsafePointer<Int8>)

, я могу передать его непосредственно как литерал

foo("bar")

илилюбая переменная типа String

var s = "bar"
foo(s)

В этих случаях правильно ли компилятор конвертирует в CString, и если да, то где это задокументировано, чтобы я мог быть уверен в этом поведении?

Также, почему существует явный withCString, если компилятор может сделать это автоматически?Чтобы обеспечить срок службы объекта?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...