Показаны сообщения с ярлыком Xcode. Показать все сообщения
Показаны сообщения с ярлыком Xcode. Показать все сообщения

пятница, 22 апреля 2011 г.

Автогенерация классов моделей CoreData в Xcode

Добрые люди для бедных негров, денно и нощно проливающих пот на трудно возделываемой плантации Xcode, написали прекрасный плагин mogenerator для автоматической перегенерации классов модели фреймворка CoreData. Притом сделали его на славу: для каждой сущности генерируется по два класса:
- базовый с подчеркиванием перед именем (полностью на основе описания сущности в модели)
- и без подчеркивания (наследуется от первого, не заменяется после перегенерации и тем самым служит пристанищам для кастомной реализации методов класса)
Плагин вступает в действие сразу же после сохранения изменений файла модели *.xcdatamodel. И все нужные файлы помещаются в одноименную с этим файлом группу, если не указаны иные настройки в вызове плагина.

Что же надо сделать, чтобы плагин заработал?

вторник, 7 декабря 2010 г.

Свободное место в UIWebView после удаления элементов со страницы

Компонента UIWebView поддерживает JavaScript конструкции, с помощью которых можно создавать интерактивный веб-интерфейс и на айфоне.
Но когда используются подобного рода конструкции:

[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('foo').style.display = 'none';"];

Возникают непредвиденная ошибка отображения компоненты: UIWebView освободившееся место сдвигает, но не удаляет. Таким образом в конце получается голый фон страницы, по высоте равный убранному элементу.

Поэтому явно приходится напоминать UIWebView реальную высоту содержимого веб-страницы. К примеру следующим образом:

NSString *string = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('wrapper').offsetHeight;"];
CGFloat height = [string floatValue];
CGRect frame = [webView frame];
frame.size.height = height;
[webView setFrame:frame];

воскресенье, 28 ноября 2010 г.

Как убрать панель статуса (status bar) в iPhone

Панель статуса можно сразу убрать для всего приложения. Сделать это можно через файл настроек .plist, включив свойство Status bar is initially hidden:


А теперь остается только на вью проставить следующие свойства:
1. Status Bar в none:


2. Поменять размер на полноэкранный:

 

суббота, 27 ноября 2010 г.

Navigation Controller в iPhone - куда что надо прописывать

Можно долго ломать голову, почему приложение падает с неизвестной ошибкой, после того, как проставишь в InterfaceBuilder связи с переменными и/или методами контроллера. Голова только одна, ломать её не надо, надо нажать на иконку консоли:


Тогда можно увидеть ошибку: Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key starQuickTest_btn.'
Эта ошибка означает, что программа не может найти обработчика к кнопке у контроллера, потому что использует не определенный вами контроллер,  а стандартный - UIViewController. Фишка в том, что класс со своим контроллером надо указать дважды для компоненты Navigation Controller:




Navigation Controller содержит в себе несколько элементов (как это видно из рисунка выше): Navigation Bar и View Controller. На панели навигация располагаются кнопки, а вью контроллер - собственно контроллер, управляющий текущим вью из стэка. Как минимум навигация должна содержать один контроллер: корневой вью контроллер. Поэтому именно этой компоненте мы и указываем MainMenuViewController - контроллер для вью, используемого при старте приложения.

понедельник, 17 мая 2010 г.

Better way to store projects on vmware

Ever since I've started programming app for iPhone on vmware I was seeking, what is the better way to store projects. Currently I have 4 modes of storing data on my mind and even now don't know what is the best.
1. store simply on the virtual system drive directly under iDeneb. But than I' becoming snapshooting system every day.. and I don't like this perspective a lot
2. storing via shared drive through vmware tools. But the real problems are coming our when you try run project on device! Xcode seems create a sort of file that can't be written on shared drive, and I have already killed a day of my nerves to find up what was the problem. But.. I was lucky to find great option to view full message of error, a kind of reward, hah.. So I tired creating local copy of the project to run it on iPhone.
And there are remains two methods that I'll try today:
3. store in the shared folder (long time want to know, how to set password on windows shared folder :) )
4. store on external hdd... few minutes left to finish data coping from it and I'll finally format it in FAT :)