Название: NSString в QString и обратно. Отправлено: Авварон от Октябрь 04, 2010, 18:32 Как делать?
Хелпер функции для этого спрятаны где-то в недрах Qt и достать их проблематично. Пока решил конвёртом в utf8 char*, но это какой-то кривой путь. Название: Re: NSString в QString и обратно. Отправлено: Авварон от Октябрь 05, 2010, 13:01 Сам шучу, сам смеюсь... Родил 2 таких варианта:
Код: QString qt_mac_NSStringToQString(const NSString *nsstr) Код: QString qt_mac_NSStringToQString(const NSString *nsstr) Название: Re: NSString в QString и обратно. Отправлено: Igors от Октябрь 05, 2010, 19:08 Не по существу конечно, но интересно: а где Вы напоролись на NSString что надо интенсивно конвертить? Я бы понял CFString или на Cocoa это уже пройденный этап?
Название: Re: NSString в QString и обратно. Отправлено: Авварон от Октябрь 05, 2010, 19:26 Судя по сорцам Qt NSString - обертка над CFString и спокойно в нее приводится reinterpret_cast'ом.
Мне надо было получить хуман-ридабл имя драйва и список драйвов в системе. Как это сделать на Cocoa я нашел (+читал книжку о ней). Также есть стремный код, использующий CoreServices для имени драйва. А вот как получить список дисков на CF я не нашел пока что. Раз уж пошел оффтоп - CoreFoundation используется как база для cocoa? Не является ли он deprecated, как Carbon? Название: Re: NSString в QString и обратно. Отправлено: Igors от Октябрь 05, 2010, 20:23 Судя по сорцам Qt NSString - обертка над CFString и спокойно в нее приводится reinterpret_cast'ом. Я бы делал по-народному через FSGetVolumeInfo (начиная с индекса = 1) пока он не вернет ошибку.Мне надо было получить хуман-ридабл имя драйва и список драйвов в системе. Как это сделать на Cocoa я нашел (+читал книжку о ней). Также есть стремный код, использующий CoreServices для имени драйва. А вот как получить список дисков на CF я не нашел пока что. Раз уж пошел оффтоп - CoreFoundation используется как база для cocoa? Не является ли он deprecated, как Carbon? Мое личное мнение - на Mac никогда не следует суетиться без крайней на то необходимости. Напр. сделали они FSRef вместо FSSpec - никуда не денешься, надо апдейтиться. Но если ф-ция работает и не указано deprecated - нечего искать приключений на свою "голову". Upgrade все равно неизбежен. невозможно угадать что Стиву придет в голову:Цитировать 99% of users are full idiots Тут папа забыл сказать: на Вындоуз этот % намного больше :)Название: Re: NSString в QString и обратно. Отправлено: Авварон от Октябрь 05, 2010, 22:07 Igors
А у вас есть что почитать по этому поводу? А то гугл на тему volume'ов и Коре Фаундэйшн молчит как партизан. Могли бы вы перечислить функции, которые нужны для получения имени диска и списка дисков? И еще вопрос - нормально ли, что я использую statfs а не вызовы CF (для получения размера volume'а и типа файловой системы)? Название: Re: NSString в QString и обратно. Отправлено: Igors от Октябрь 06, 2010, 17:42 Igors Ну тут надо "прильнуть к первоисточнику" http://developer.apple.com/library/mac/#documentation/Carbon/Reference/File_Manager/file_manager.pdf (http://developer.apple.com/library/mac/#documentation/Carbon/Reference/File_Manager/file_manager.pdf) Список на стр 24. Apple имеет такой букварь по каждой теме. Проблема не отсутствие документации а ее чрезмерное обилие. И с ф-циями долговато разбираться куда там керосин заливать. Как чисто на Cocoa - не знаюА у вас есть что почитать по этому поводу? А то гугл на тему volume'ов и Коре Фаундэйшн молчит как партизан. Могли бы вы перечислить функции, которые нужны для получения имени диска и списка дисков? И еще вопрос - нормально ли, что я использую statfs а не вызовы CF (для получения размера volume'а и типа файловой системы)? Сам не проверял, но, судя по др. вещам, POSIX они поддерживают цивильно - или работает как положено или сразу возвращает ошибку типа "not implemented"Название: Re: NSString в QString и обратно. Отправлено: Авварон от Октябрь 06, 2010, 23:20 Чисто на cocoa-то я написал, что надо. Но потом задумался - а не слишком ли это высокоуровневое АПИ?
Поэтому и задался вопросом о CF. А до statfs я дошел из тех соображений, что в доке к методам NSFileManager указано, что многие параметры беруться при помощи statfs. |