LoginSignup
8
8

More than 5 years have passed since last update.

Objective-Cを読解しなくちゃいけなくなった(初心者向け)

Last updated at Posted at 2015-07-26

仕事で簡易的なiOSアプリを作ることになりました。
が、全く経験ありません。
Swiftデビューか!と思いきや、
使用するsdkがObjective-Cで書かれていました。
なので読解のため
@や[[ ]]の入れ子など謎が多いオブシー(と略すらしい)
の基礎勉強まとめです。

9k=.jpg

↑絵本シリーズは丁寧で深く良いです。

1,Objective-Cとは

・C 言語の基本構造をベースにして、Smalltalk 言語を取り入れた言語。
・NSString型 など よくNSが登場するが、これはジョブズがAppleを追い出されてた時期につくった NeXT社のOSのNeXTSTEPの名残。
・クラス型や生成方法がヘッダファイルで定義されているため、その実体は C 言語の構造体を typedef 文で隠蔽している

2,文字列

sample
 NSString* str = @"abcdefg";
 NSLog(@"%@", str) //ログ出力

3,配列

sample
 NSArray* arr;
 arr = [NSArray arayWithObjects: @"abc", @"def", @"ghi", nil];

 int i;
 for (i = 0; i < [arr count]; i++){
    NSLog(@"%@", [arr objectAtIndex:i]);
 }

4,クラス

objective-cのクラスはインターフェース部と実装部の2つから構成される

[]をメッセージ式と呼び、クラスやオブジェクトに対してメッセージを送る
という流儀でメソッドを呼ぶ。

sample
 // インターフェース部   @interface ~ @end  までに記述 Animalがクラス名
 @interface Animal : NSObject
 {
    int age;
 }
-(void)showFood;
 @end


 // 実装部  implementation ~ @end  までに記述
 @implementation Animal
 -(void)showFood{
     NSLog(@"美味しいさかな");
 }
 @end

 // オブシェクトの生成
 int main() {
    Animal* cat = [Animal alloc]; // 生成
    cat = [cat init]; // 初期化
    [cat showFood]; // メソッド呼び出し

    return 0;
}

独特の流儀や記述が多いけど、Swiftみたいな
おしゃれ感はないけれど僕は好きになれそうでした。
フジロック疲れが凄いので本日はここまでにします
ライフサイクルやメモリ管理の仕組みとかも学ばなければ!

8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8