「Objective-C」初心者(入門者)が読むと勉強になるだろうサイトを読んでいたら、つい途中で現実逃避していた。
ブログ「もとまか日記」さんの記事「今更ですがiOSアプリ開発の基礎について色々調べてみました」を読んでて、Objective-Cのことをサラリと知りたくなったので、記事で紹介されていたサイト(+α)を読んでみました。
えーっと、、、正直言って今のレベルだとサッパリわからない感じでで、ただサラ〜っと流し読みして終わってしまいました。(所要時間:10分)
こちらの記事の方がわかりやすいのだが、「何らかのオブジェクト指向言語の使用経験がある方のため・・・」と書いてある通り、まだまだバッチリ理解できたとは言えないレベルで、結局は読み流してる感じになってしまいました。この記事のコメントに書いてある「わかりやすくて感動しました」と言えるレベルになりたいものです。(所要時間:15分)
日付を見ると約2年前に書かれただろう記事なので、Xcodeの操作や説明が少々違ったりするのですが、内容的にはとっても「超入門」で読みやすくわかりやすかったので感謝感激しつつ、入力したソースコードを掲載しておきます。(所要時間:120分)
#include <stdio.h>
//ポインタで構造体を渡す
typedefstruct {
char* name2;
int age2;
char* mail2;
} Person2;
void printPerson2(Person2 data){
printf("name2: %s\n",data.name2);
printf("age2 : %i\n",data.age2);
printf("mail2: %s\n",data.mail2);
printf("\n");
}
//そのまま構造体を渡す
typedefstruct {
char* name;
int age;
char* mail;
} Person;
void printPerson(Person data){
printf("name: %s\n",data.name);
printf("age : %i\n",data.age);
printf("mail: %s\n",data.mail);
printf("\n");
}
//引数の返値
//引数も返値もない
void print100Total(){
int total = 0;
for (int i = 1; i <= 100; i++) {
total += i;
}
printf("total: %i\n",total);
}
//引数はあるが返値がない
void printTotal(int n){
int total = 0;
for (int i = 1; i <= n; i++) {
total += i;
}
printf("total: %i\n",total);
}
//引数も返値もある
int getTotal(int n){
int total = 0;
for (int i = 1; i <= n; i++) {
total += i;
}
return total;
}
//関数の練習
void printHello(){
printf("Hello, World !!\n");
}
int main(int argc, const char * argv)
{
//ポインタで構造体を渡す
Person data3 = {"taro",30,"taro@yamada.com"};
Person data4 = {"hanako",24,"hanako@flower.jp"};
printPerson(data3);
printPerson(data4);
//そのまま構造体を渡す
Person data1 = {"taro",30,"taro@yamada.com"};
Person data2 = {"hanako",24,"hanako@flower.jp"};
printPerson(data1);
printPerson(data2);
//引数の返値
print100Total();
printTotal(100);
printf("Total = %i!!\n",getTotal(100));
//関数の練習
printHello();
printHello();
//ポインタは同じ値を共有する
char txt1 = "This is test!";
char* txt2 = txt1;
txt1[2] = 'a';
txt1[3] = 't';
txt1[8] = 'H';
txt1[9] = 'O';
txt1[10] = 'G';
txt1[11] = 'E';
printf("%s\n",txt2);
//アドレスを操作する
int data = {12,345,6789};
int* arr5 = data;
for (int i = 0; i < 3; i++) {
printf("%i\n",*arr5++);
}
//ポインタとアドレス
char* arr3 = "Hello!";
char* arr4 = arr3;
printf("%s\n",arr4);
//配列とテキストの値
char arr2 = "Hello!";
int r = sizeof(arr2);
for (int i = 0; i < r; i++) {
printf("%c",arr2[i]);
}
printf(" (%i)\n",r);
//配列で、たくさんの値をまとめて管理
int arr[5] = {10,20,30,40,50};
int res4 = 0;
for (int i = 0; i < 5 ; i++) {
res4 += arr[i];
}
printf("total: %i\n",res4);
//細かく繰り返しをチェックする「for」文
int q = 123;
int res3 = 0;
for (int i = 0; i <= q; i++) {
res3 += i;
}
printf("%i total: %i\n",q,res3);
//「while」文(変数oまでの合計を計算する)
int p = 1234;
int res = 0;
int count = 0;
while (count <= p) {
res += count++;
}
printf("%i total: %i\n",p,res);
//「while」文(++countにした場合)
int o = 1234;
int res2 = 0;
int count2 = 0;
while (count2 < o) {
res2 += ++count2;
}
printf("%i total: %i\n",o,res2);
//たくさんの分岐を使う「switch」文
int l = 8;
switch ((l % 12) / 3) {
case 0:
printf("%i gatsu is Winter.\n",l);
break;
case 1:
printf("%i gatsu is Spring.\n",l);
break;
case 2:
printf("%i gatsu is Summer.\n",l);
break;
case 3:
printf("%i gatsu is fall.\n",l);
break;
default:
break;
}
//条件となるもの
int m = 12345;
if (m % 2) {
printf("%i is odd number.\n",m);
} else {
printf("%i is even number.\n",m);
}
//条件分岐の基本「if」文
int n = 12345;
if (n % 2 == 0) {
printf("%i is even number.\n",n);
} else {
printf("%i is odd number.\n",n);
}
//変数の宣言と代入
int x = 1234;
int y = 56;
int a1 = x + y;
int a2 = x - y;
int a3 = x * y;
int a4 = x / y;
printf("A + B = %i\n",a1);
printf("A - B = %i\n",a2);
printf("A * B = %i\n",a3);
printf("A / B = %i\n",a4);
//printf関数の働き
printf("Hello, %s!\n","World");
printf("integer: %i\n",12345);
printf("float: %f\n",0.9876);
//プログラムを動かしてみる
printf("Hello, World!\n");
return 0;
}
と、ここまでで力尽きてしまいましたので、下記サイトはまた後日読もうと思います。
4. 初心者のためのObjective-Cプログラミング入門 (所要時間:分)
5. 初心者のためのiphone/ipadプログラミング入門 (所要時間:分)
追記ですが、この本を購入しようと思っている今日この頃なんです。