Описание тега unsafe-pointers
Некоторые "безопасные" языки, такие как Swift и Go, предлагают "небезопасные" указатели для использования с API, написанными на таких языках, как C и Objective-C. Вопросы, использующие этот тег, также должны иметь соответствующий языковой тег, например [swift] или [go].
3
ответа
Более быстрый способ преобразования строки в UnsafePointer<xmlChar> в Swift 3 (libxml2)
Я работаю над оболочкой Swift 3 для C-библиотеки libxml2. Есть два удобных метода для конвертации String в UnsafePointer<xmlChar> и наоборот. В libxml2 xmlChar объявлен как unsigned char, UnsafePointer<xmlChar> в String несложно func str…
30 авг '17 в 16:29
4
ответа
Каковы эти так называемые "бедствия", которые могут быть вызваны неправильным использованием указателей?
Я все больше и больше использую указатели в своих программах, и, читая об указателях, каждое найденное мной руководство или учебник говорили, что неправильное использование указателей может привести к "катастрофическим" результатам. Теперь у меня бы…
22 дек '10 в 10:52
0
ответов
Добавить координату к MapBox MGLPolyline
Я пытаюсь добавить координату к линии, которой я помечаю карту MapBox. MGLPpoyline имеет следующую функцию для добавления координат: appendCoordinates(_ coords: UnsafePointer<CLLocationCoordinate2D>, count: UInt) Я не могу на всю жизнь понять,…
24 авг '18 в 20:34
0
ответов
Закрепление экземпляра класса с помощью GCHandle.Alloc в C#
Я работаю с неуправляемой библиотекой C, которая имеет функцию обратного вызова, которая вызывается из внутреннего потока в библиотеке C. Обратный вызов имеет параметр void * 'context'. Я хочу установить в этом контексте адрес экземпляра класса C#, …
07 янв '19 в 14:52
0
ответов
error -'init недоступен: используйте 'withMemoryRebound(to:acity:_)', чтобы временно просмотреть память как другой тип, совместимый с макетом
Я получил эту ошибку при быстром преобразовании init недоступен: используйте withMemoryRebound(to:acity:_), чтобы временно просмотреть память как другой тип, совместимый с макетом мой код func{ var inbuf : [UInt8] = Array(repeating: 0, count: bufSiz…
14 дек '17 в 05:31
1
ответ
Как мне обработать CFSocketCallBackType.dataCallback в Swift?
Вся документация и примеры говорят, что если сокет CFSocketCallBack выноска дается .dataCallback как его второй параметр (callbackType), это означает, что четвертый (data) можно привести к CFData объект, содержащий все данные, предварительно прочит…
12 дек '17 в 19:35
1
ответ
init недоступен: используйте withMemoryRebound(to:acity:_), чтобы временно просмотреть память как другой тип, совместимый с макетом
Так как я преобразовал свой код в Swift 3, возникает ошибка. 'init is unavailable: use 'withMemoryRebound(to:capacity:_)' to temporarily view memory as another layout-compatible type. Вот мой код: func parseHRMData(data : NSData!) { var flags : UInt…
29 мар '17 в 19:26
1
ответ
Небезопасный указатель в Swift 3
Я знаю, что этот вопрос задавался несколько раз, но я действительно не понимаю его. Я хочу извлечь значение из устройства Bluetooth (Miband). В Swift 2 это работало так: func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: C…
18 окт '16 в 15:09
1
ответ
Доступ к указателю / ссылке this с помощью индексатора в C#
Я экспериментирую с структурой данных для критической части производительности / памяти в нашей кодовой базе. Я хотел бы иметь быстрый доступ к байтам, определенным в структуре. Однако я не уверен, как получить доступ к структуре, на которой я работ…
07 ноя '17 в 10:24
1
ответ
Как создать CIVector из массива CGFloat?
Я пытаюсь создать тип фильтра CICrossPolynomial в Swift. Я не уверен, как создать синтаксис, чтобы сделать это, однако. Документация указывает CIVector, который имеет массив с плавающей точкой? A CIVector object whose display name is RedCoefficients…
23 дек '14 в 21:58
3
ответа
Как читать байты структуры в Swift
Я работаю с различными структурами в Swift, которые мне нужны, чтобы иметь возможность взглянуть на память напрямую. Как я могу посмотреть на структурный байт за байтом? Например: struct AwesomeStructure { var index: Int32 var id: UInt16 var stuff: …
24 сен '18 в 21:58
1
ответ
Преобразование типа из байтового фрагмента в структуру с небезопасным
Я пытаюсь понять, почему мой код в Go не работает так, как я думал. Когда я выполняю этот тест, он не проходит: func TestConversion(t *testing.T) { type myType struct { a uint8 value uint64 } myVar1 := myType{a: 1, value: 12345} var copyFrom []byte …
06 янв '19 в 00:02
1
ответ
win.RegisterRawInputDevices Всегда возвращает false
Я использую пакет https://github.com/lxn/win для доступа к низкоуровневым вызовам Windows в Go. Я зову win.RegisterRawInputDevices зарегистрировать устройства для необработанных входных данных, но всегда возвращает false. Я сделал это в C# без пробл…
31 дек '18 в 16:15
1
ответ
Ошибка Swift: '&' используется с аргументом non-inout типа 'UnsafeMutablePointer'
Я пытаюсь преобразовать следующий код Objective C ( источник) из этого -(CGRect) dimensionsForAttributedString: (NSAttributedString *) asp { CGFloat ascent = 0, descent = 0, width = 0; CTLineRef line = CTLineCreateWithAttributedString( (CFAttributed…
12 дек '15 в 09:53
3
ответа
Преобразование UnsafePointer с длиной в тип Swift Array
Я ищу самые простые способы достижения разумной совместимости C в Swift, и мой текущий блок конвертирует UnsafePointer<Int8> (который был const char *), в [Int8] массив. В настоящее время у меня есть наивный алгоритм, который может принять Uns…
16 сен '15 в 11:12
2
ответа
Инициализатор UnsafePointer<UInt8> в Swift 3
У меня есть класс проверки квитанции, который устарел после выпуска Swift 3. Я исправил некоторые проблемы, но у меня все еще много... Вот исходный код GitHub, который я использовал: https://gist.github.com/baileysh9/4386ea92b047d97c7285 и https://g…
28 сен '16 в 12:12
1
ответ
Чтение значений из двоичного файла, типы которого известны во время выполнения
Я пытаюсь прочитать серию значений из двоичного файла, но я не буду знать, какие типы значений, до времени выполнения. Упрощенный пример У меня есть двоичный файл длиной 10 байт. Байты представляют, по порядку, int, floatи short, Я не знаю это во вр…
06 ноя '14 в 05:00
2
ответа
EXC_ARM_DA_ALIGN при чтении из NSData в Swift
У меня есть следующий класс: class RawDataArray { var data: NSData! init(filePath: String) { data = NSData(contentsOfFile: filePath) } func read<T>(offset: Int) -> T { return UnsafePointer<T>(data.bytes + offset).memory } } который я …
13 фев '15 в 19:37
4
ответа
c указатель декремент безопасно / небезопасно?
Анализируя некоторый код: static volatile UCHAR *pucSndBufferCur; eMBErrorCode eMBRTUSend( UCHAR ucSlaveAddress, const UCHAR * pucFrame, USHORT usLength ) { if( eRcvState == STATE_RX_IDLE ) { /* First byte before the Modbus-PDU is the slave address.…
19 фев '18 в 11:04
0
ответов
Сегфо в единстве от маршала.AllocHGlobal
В Unity у меня была система потока битов, для работы которой требовалось постоянное закрепление массивов. Я оптимизирую это, выделяя блок неуправляемой памяти и поддерживая указатели на нее, пока система жива. Примечание на случай, если это предложе…
19 дек '17 в 23:09