char, wchar_t и unichar

Я пишу свою первую программу на Objective-C/Cocoa. (Я уже знаю C и C++ в мире Windows, то есть Visual C++.) Похоже, Cocoa может работать с типом char, но предпочитает тип unichar. Также похоже, что Cocoa НЕ очень заботится о wchar_t. Итак, какой тип я должен использовать для части C моего кода, например. в структурах? Если ответ unichar, то каковы эквиваленты const wchar_t* myString = L"this is my wchar string";, wcslcpy и т. д.?


person HairOfTheDog    schedule 07.03.2013    source источник
comment
Ничто не мешает вам использовать NSStrings в структурах   -  person Dave    schedule 07.03.2013
comment
(но не забудьте позвонить release, когда закончите с этим!)   -  person Dave    schedule 07.03.2013
comment
@Dave на самом деле, в ARC есть (предупреждения компилятора и тому подобное). Если он использует структуру C++, то проблем нет.   -  person Richard J. Ross III    schedule 07.03.2013
comment
@RichardJ.RossIII, потому что ARC не может гарантировать управление памятью для него. Вы можете свободно использовать объекты __unsafe_unretained в структурах.   -  person CodaFi    schedule 07.03.2013
comment
Ах хорошо. Я когда-либо использовал Objective C только с C++ и предполагал, что те же принципы применимы к C.   -  person Dave    schedule 07.03.2013
comment
@Dave, необходимость использовать специальный синтаксис и необходимость вызова release - это те самые причины, по которым я не хочу использовать NSString в структуре. Я хочу выделить структуру с помощью malloc и освободить структуру с помощью free   -  person HairOfTheDog    schedule 07.03.2013


Ответы (1)


Помимо незнакомости, есть ли причина, по которой вы не говорите о NSStrings?

NSString являются стандартными типами строк в Objective C. Если вы не пытаетесь встроить какую-либо библиотеку C++ для кросс-компиляции в приложение для iOS/Macintosh, вероятно, не так много причин цепляться за C-тип.

Вот связанный вопрос, который также включает дополнительную информацию и чей-то очень полезный вид набор методов, преобразующих wchar_t в объект NSString и наоборот.

person Michael Dautermann    schedule 07.03.2013