Блог О пользователеiphonesdk

Регистрация

 

Теги

_isnan _t apple automation autorelease pool bar bash bug c++ cellforrowatindexpat h cgimage chflags cocoa condition const contentinset contentsize cpp.cpp dealloc debug debugger destructor exc_bad_access exist finger piano share gcc header headers herb sutter interface builder ios ios 5.0 ios 6 ipad iphone iphone os iphone sdk ipod ipod touch isnan junior leader line link linker linux mac os mac os x 10.7 man member memory microsoft visual studio multithread multithreading navigation bar nil nsautoreleasepool nslog nsstring nsthread nstimer nszombieenabled objcpp.cpp objective c objective-c out of memory phread posix pthread pthread_attr_setstac ksize quartz regex regular expressions release rename rotate script senior setevent shell sleep stack stack size static lib status bar std::toupper stricmp team leader template class temporary files thread tinyxml uiactivityindicator uicollectionview uigraphicspopcontext uigraphicspushcontex t uiimage uiscrollview uitableview uitableviewcell unix upgrade current target for ipad validate variables win32 windows www.odesk.com xcode xcode 4.2 xcode-проект xcodebuild xcodeproj xml xml document xml parser yamaha автоматизация автоматически алёна c++ алёна сагалаева андрей александреску антипаттерны банда четырёх бертран мейер библиотеки быстрая разработка программ временные файлы вывод текста герб саттер гигантская гради буч дедлок дерево проекта деструктор джоэл спольски директория дополнительный поток защита знание языка c++ изображение исходник каталог квалификация коллективный проект компилятор компиляция константная константные контрол копировать линкование линковка макроопределение мембер многопоточность настройка несколько библиотек в одном проекте несколько либ ооп основной поток падение память паттерны проектирования переименовать переполнение переполнение стека повернуть получить путь к папке портирование поток проблемы с отладчиком программирование программист проект размер текста разработчик рефакторинг роберт лафоре роберт мартин си++ скрипт смещение контрола ссылки статическая библиотека статические библиотеки статические либы стек стив макконел странности отладчика утечки памяти файл фредерик брукс функция человеко-лет человеко-месяц член член класса шаблонный класс электронные книги электронные читалки

1 |2 |3 |4 |5
 

Как совмещать C++ и Objective C код в одном файле (классе)


Есть 2 способа, как совмещать C++ и Objective C код в одном исходнике:

1) При добавлении в Xcode-проект нового Objective C класса (который будет включать в себя C++ код) дайте файлу реализации расширение.mm (а не.m как предлагается по умолчанию). Кроме того, можно смело переименовать в дереве Xcode-проекта файл, изменив расширение с m на mm.

2) Если вам нужно использовать Objective C код в C++ классе (файл реализации которого будет иметь расширение.cpp) то в дереве проекта нажмите правую кнопку мыши или сделайте иное действие (в зависимости от настроек Mac OS) чтобы вызвать контекстное меню. В контекстном меню выберите Get Info. Появится окошечко, в котором нужно поменять тип файла с cpp.cpp на objcpp.cpp. Кстати, это позволит коду узнавать #ifdef __IPHONE_3_1 (или какая у вас там версия iPhone OS), что необходимо, если вы работаете в коллективном проекте, где нужно писать переносимый код для разных платформ.

 

Как удалить badge-кружочки из TabBar вкладок


Стоит только написать хоть что-нибудь в поле Badge для TabBar в Interface Builder и после этого даже если вы удалите все символы из этого поля, вам уже не удастся избавиться от появившихся badge-кружочков (которые будут пустыми, без строк, но всё равно мозолящими глаза в случае их ненадобности).

Оказывается, можно их удалить, если открыть xib-файл в виде текста (в любимом текстовом редакторе для правки кода). Этот xib-файл есть не что иное, как xml-файл. Сохраните на всякий случай копию оригинального xib-файла. Найдите в оригинале все нужные вам строки, в которых содержится слово badge и удалите их. Если кого заинтересует, напишу сюда более подробно. Дело в том, что изначально этих строк не было, пока вы не ввели хотя бы один символ в bagde-поле, используя Interface Builder.

1 |2 |3 |4 |5

     
ЯнварьФевральМартАпрельМайИюньИюльАвгустСентябрьОктябрьНоябрь (82)Декабрь
           
123456789101112131415161718192021222324252627282930