Описание тега toll-free-bridging

1 ответ

Зачем использовать бесплатные мосты для коллекций с пользовательской семантикой управления памятью?

В книге Эффективный Objective-C 2.0: 52 конкретных способа улучшить программу для iOS и OS X есть Правило 49: используйте бесплатное соединение для коллекций с пользовательской семантикой управления памятью Эта глава в основном объясняет важность бе…
30 окт '17 в 14:36
1 ответ

Безопасно ли использовать соответствующие вызовы CFBridging для передачи в ARC и из ARC для типов без CF?

Я пишу игру, используя физический движок Бурундука, и я хотел бы хранить указатель на объект Objective-C в каждом теле userData поле. Я знаю, что мне нужно использовать бросающий мост между id а также void *, но я не уверен, что то, как я это делаю,…
2 ответа

Почему словарь Swift не является мостовым?

Словарь является мостовым типом, почему я могу переключаться со словаря Swift на NSDictionary, а не наоборот? (Ошибка компиляции: NSDictionary не конвертируется в "Словарь") Согласно документу Apple: Все объекты NSDictionary могут быть соединены со …
01 июн '15 в 10:54
0 ответов

(__bridge__transfer NSData*) возвращает _NSCFArray вместо NSData

У меня есть код, который я использую для управления цепочкой для ключей. Метод SecItemCopyMatching возвращает результат в виде (CFTypeRef *) с именем foundDict, который передается как ссылка на метод SecItemCopyMatching. Затем я использую (__bridge_…
10 янв '16 в 18:55
1 ответ

OS X и FSEvents: как освободить указатель обратного вызова, предоставленный для FSEventStreamRef?

Я использую FSEvents для мониторинга каталога, и всякий раз, когда каталог изменяется, я вызываю блок, который я первоначально передал в FSEventStreamContext из FSEventStreamRef. Как освободить блок, когда пришло время прекратить мониторинг каталога…
4 ответа

Допустим ли __bridge_transfer для объекта NULL

Допустим, метод возвращает CFErrorRef через указатель. Эта возвращенная ошибка может быть NULL, Так было бы безопасно выполнить __bridge_transfer еще или я должен проверить NULL, Например CFErrorRef cfError; ABAddressBookRef addressBookRef = ABAddre…
1 ответ

Правильный способ обработки CGImageRef в контейнерах под ARC

Я новичок в использовании дуги в моих проектах. Я пытаюсь понять __bridge и его маленьких друзей, чтобы я мог правильно использовать CGImageRef при добавлении и удалении их из контейнеров. Я получаю "Потенциальную утечку хранящегося объекта…" на одн…
1 ответ

ObjC приведение блока к типам с бесплатными мостами

Можно ли передать блок, который принимает типы Objective-C, имеющие свободные от мостов эквиваленты, непосредственно в метод, ожидающий блок с типами C? Конкретный пример Я оборачиваю API AddressBook и Contacts в зависимости от доступности, и фреймв…
1 ответ

ARC: __bridge против __bridge_ удерживается с использованием контрольного примера contextInfo

Рассмотрим этот код ARC: - (void)main { NSString *s = [[NSString alloc] initWithString:@"s"]; [NSApp beginSheet:sheet modalForWindow:window modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:context:) contextInfo:(__bridge void *)s ]…
1 ответ

Преобразование CFIndex в NSInteger

Этот вопрос похож на мой, но не содержит ответа. Я хочу преобразовать CFIndex в NSInteger, Я проверил список типов, у которых есть бесплатный мост, и это не один из них.
5 ответов

Бесплатный мост и указатель доступа в Swift

Я портирую приложение с Objective-C на Swift, и мне нужно использовать следующий метод: CFStreamCreatePairWithSocketToHost(alloc: CFAllocator!, host: CFString!, port: UInt32, \ readStream: CMutablePointer<Unmanaged<CFReadStream>?>, \ wri…
1 ответ

Являются ли строковые, массивные и словарные объекты Swift объектами NSO? Почему структура может быть NSObject?

Я использую NSKeyedArchiver.archivedDataWithRootObject(obj) превратить объект в NSData, archivedDataWithRootObject(obj) Метод требует, чтобы его параметр был NSObject, в соответствии с NSCoding, Я пробовал архивировать Swift Strings, Arrayс и Dictio…
12 июл '16 в 03:38
1 ответ

NSString в CFStringRef и CFStringRef в NSString в ARC?

Я пытаюсь понять правильный способ получения NSString из CFStringRef в дуге? То же самое для движения в противоположном направлении, CFStringRef в NSString в дуге? Как правильно сделать это, не создавая утечек памяти?
2 ответа

Приведение объекта NSFastEnumeration в ARC

Я пытаюсь реализовать countByEnumeratingWithState:objects:count: метод из протокола NSFastEnumeration для пользовательского класса. До сих пор он правильно перебирает мои объекты, но возвращаемые объекты не являются объектами Objective-C, а являются…
1 ответ

Соединение с / с CoreFoundation в Linux

Я пытаюсь скомпилировать некоторый код в Linux, который использует как CoreFoundation, так и Foundation, но Linux не реализует мосты так же, как MacOS и iOS. Соединение Objective-C и Swift работает: import Foundation import CoreFoundation import Gli…
1 ответ

Почему метод доступного голоса класса NSSpeechsynthesier не может быть соединен с массивом строк Swift?

В статье " Работа с фреймворками Какао" Apple гласит, что фреймворки Foundation и Swift Foundation работают вместе через мост. Однако я заметил, что при попытке использовать метод класса NSSpeechSynthesizer availableVoices() он позволяет мне получит…
10 май '18 в 12:11
1 ответ

Назначение из метода Class связывает класс вместо его возвращаемого значения

Я заметил что-то странное в поведении кода, который я сейчас пишу, и подумал, что я попрошу здесь посмотреть, не делаю ли я что-нибудь глупое, что может привести к этому. По сути, когда я присваиваю переменную возвращаемому значению моего метода кла…
2 ответа

Восстанавливает ли CFBridgingRelease владение существующим ссылкам без прямого назначения?

Если у меня есть следующий код: // objective C++ code .mm id<MTLTexture> texture = ...; void* ptr = (void*)CFBridgingRetain(texture); share_ptr_with_native_code(ptr); [texture do_stuff]; // is this valid? // native code .cpp void share_ptr_wit…
1 ответ

CFDictionary не будет соединяться с NSDictionary (Swift 2.0 / iOS9)

Хорошо, это тот случай, с которым я столкнулся при работе с CGImageSource и заметил, что в некоторых случаях при бесплатном мостовом соединении между CFDictionary и NSDictionary возникают проблемы. Мне удалось построить приведенный ниже пример, чтоб…
1 ответ

OS X: как правильно соединить указатель релиза с __bridge_transfer

У меня есть блок-объект, который преобразуется в void * указатель для передачи в библиотеку C. Я развертываю на OS X 10.6 так CFBridgingRetain а также CFBridgingRelease не доступны Вместо этого я делаю: void ptr_retain(void (^block)()) { void *ptr =…