not good but great

プログラミング、アート、映画・本の感想について書きます。

Objective-Cの変数と定数の宣言の仕方を学ぶ

変数の宣言とデータ型

NSIntegerとintの違い

int型には16ビットのshort int、32ビットのint、64ビットのlong intがあります。intではなくNSIntegerにするとビルド時に指定される32ビット、64ビットに応じてビット長が変わります。unsigned intとNSUintegerの関係も同じです。

浮動小数

整数型の変数に小数点付きの値を入れると、小数点以下は切り捨てとなります。小数点を扱うデータ型はdoubleとfloatがあります。

float num = 3.14f;

floatには最後にfをつけます。

int a = 5,b = 3;
float ans = (float)a / b;
NSLog(@"答え %.1f",ans);//答え 1.7

整数同士の計算は結果も整数になるので、上のような場合型の変換(キャスト)を行います。

BOOL型

BOOL isDone;
isDone = YES;
if (isDone) {
    NSLog(@"完了");
}else{
    NSLog(@"まだです");
}

booleanはBOOLで宣言できます。

char

char rank = 'D';
NSLog(@"rank = %c",rank);

char型には半角英数文字を1文字入れることができます。代入するときはシングルクオテーションで囲みます。

typedef

typedef NSUInteger Days;
Days shigoto = 30;
Days yasumi = 5;
NSLog(@"仕事は%d日あって、休みは%d日ありますよ!",shigoto,yasumi);
//仕事は30日あって、休みは5日ありますよ!

typedefを使うと、型の名前を好きなように変えることができて、コードがわかりやすくなります。

ポインタ

NSString *msg;
NSDate *now;
msg = @"大爆笑";
now = [NSDate date];
NSLog(@"%@ %@",msg,now);//大爆笑 2014-04-13 09:11:00 +0000

C言語と同様にポインタを使うときは「*」を変数の前につけます。

定数の宣言

const

const int LEVEL = 27;
NSString * const COLOR = @"赤色";
NSLog(@"%d %@",LEVEL,COLOR);//27 赤色

constをつけると定数を宣言できます。定数の値は後から変更できないので、定数の宣言とともに値も入れます。

enum

enum{
    NUM_A = 10,
    NUM_B,//11
    NUM_C//12
};

int sum = NUM_A + NUM_B + NUM_C;
NSLog(@"%d",sum);//33

enumは列挙型と呼ばれるデータ型で、定数をたくさん宣言したいときに便利です。constをつけなくてもよく、連続した数なら予想して値を入れるので記述が楽です。

define

#define VOL 100//定数
#define menseki(a,b) a * b//関数
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    NSLog(@"量は%d",VOL);//量は100
    
    NSInteger ans = menseki(2,3);
    NSLog(@"ans %d",ans);//ans 6
    
}

「#define(マクロ定義)」で擬似的に定数と関数を宣言できます。