Objective-C入門(笑)のネタ記事ですw
iPhoneアプリを何個か作ってObjective-Cに慣れてきた人向けの小ネタです
まずは書いてみよう
- Xcode を起動
- Create a new Xcode project をクリック
- Empty Application を選択
- Product Name は HelloWorld
これでプロジェクトが生成されたと思うのでナビゲーションからまずはSupporting Files
を開いてmain.m
を選択してください!
1 2 3 4 5 6 7 8 9 10 |
#import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } |
このようなコードが表示されたと思います。これを以下のように修正してみてください
1 2 3 4 5 6 7 8 9 10 11 12 |
#import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char *argv[]) { printf("Hello Objective-C"); // @autoreleasepool { // return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); // } } |
ではcommand+Rを押して実行してみましょう!左下に
1 2 |
Hello Objective-C |
と表示されましたね?
おめでとうございます!Objective-CでHelloWorldがかけましたヽ(=´▽`=)ノ
え?Objective-Cらしくないって?じゃあprintf
の行を
1 2 |
NSLog(@"Hello Objective-C"); |
と変更して実行してみてください!
NSLog
も使ってるし@""
も使ってます!立派なObjective-Cですね!
どうしてこんなことをしたか
Objective-Cも普通に動いてるんだと知って欲しかった。実際アプリをリリースしている人でも自分のソースがどこから始まってどこで終わってるのかちゃんと知ってる人って少ないと思うんですよ。AppDelegateを見てもアプリの要所要所で呼び出されるメソッドが書いてあるだけでアプリの本体がどこにあるのかはわかりません。Objective-CもCの拡張なんだからちゃんとint main
が存在してその中で動いてるというのを知ってほしい。そういった構造を意識しなくても開発できるというのはiPhoneアプリ開発の設計の優れたところではありますが、スキルアップのためにはこういったところの理解も必要だと思ってやりました。今は反省しています
ひろせ