iPhoneСтатьиПрограммирование

[iPhone, XCode] Hello World

Автор:

HelloWorld | [iPhone, XCode] Hello World

Идем на http://developer.apple.com, скачиваем iPhone SDK, ставим. Всё доступно бесплатно после регистрации, в состав iPhone SDK входит среда разработки XCode.
Если заплатить 100$, дождаться сертификатов от Apple, настроить их - то можно будет запускать свои приложение на телефоне. А пока будем запускать свой Hello World на эмуляторе телефона.

Запускаем XCode, New Project, выбираем Window-based Application, Product пусть будет Universal (сразу для iPhone и iPad), вписываем любое имя для проекта.
Слева, в Groups&Files удаляем папки iPad и iPhone (выделяем и жмем на кнопку Del).
В папке Shared находим .plist, открываем его, находим строчки начинающиеся на "Main nib file" и удаляем их тоже (кпопкой Del). Таким образом мы удалили Delphi Interface Builder из проекта (Empty Project в XCode нету).

Заходим в папку Other Sources, main.m, стираем всё и вставляем этот код:

#import <UIKit/UIKit.h>

@interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate>
{}
@end

@implementation HelloWorldAppDelegate 

- (void) applicationDidFinishLaunching: (UIApplication *) unused
{
    UIAlertView * myAlert = 
    [
        [ UIAlertView alloc ]
        initWithTitle: nil
        message: @"Hello World"
        delegate: nil
        cancelButtonTitle: nil
        otherButtonTitles: nil, 
        nil
    ];

    [ myAlert show ];
}

@end

int main () 
{
    return UIApplicationMain ( 0, NULL, nil, @"HelloWorldAppDelegate" );
}

Нажимаем на кнопку Build and Run. Всё.

--
http://pshenichny.livejournal.com/28773.html

#iPhone, #XCode

22 сентября 2010

Комментарии [6]

#1
12:16, 23 сен 2010

Ужас... зачем это нужно?
Нет AutoreleasePool, и при этом не вызывается release у AlertView - это раз. Второе - зачем удалять интерфейс? Хелоуворлд, который вводит в заблуждение и не приносит никакой пользы. Лучше бы уже рассказал как в IB кинуть надпись с текстом "Hello World!" на окно... И еще код ужасно отформатирован

#2
13:46, 23 сен 2010

AutoReleasePool не нужен, release не нужен тоже - всё освободится после выхода из приложения.
Interface Builder не нужен - это самый простой и короткий Hello World.

#3
13:59, 23 сен 2010
@interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate>
@end

@implementation HelloWorldAppDelegate 

- (void) applicationDidFinishLaunching: (UIApplication *) unused
{
    UIAlertView* a = [[UIAlertView alloc] initWithTitle:nil message:@"Hello World" delegate:nil 
                    cancelButtonTitle:nil otherButtonTitles:nil];
    [a show];
}

@end

int main() 
{
    return UIApplicationMain(0, 0, nil, @"HelloWorldAppDelegate");
}

Еще короче :)
Но смысла я в этом примере не вижу

#4
15:29, 23 сен 2010

Еще короче - писать весь код в одну длинную строчку.

Какой смысл в Hello World?
А нет его :)

#5
16:06, 23 сен 2010

RomanPshenichny
> Какой смысл в Hello World?
Познакомить человека с языком/платформой/средой разработки. Здесь же изначально ты задаешь неверный путь

#6
21:07, 25 окт 2010

AutoReleasePool не нужен, release не нужен тоже - всё освободится после выхода из приложения.
Interface Builder не нужен - это самый простой и короткий Hello World.

Дальше можно не читать.Зачем вообще delete, free - всё освободиться при завершении приложения.

iPhoneСтатьиПрограммирование

Тема в архиве.