海外ドラマで英語を勉強するときのまとめ
特に切羽詰まってないとき、楽しみながら海外ドラマで英語を勉強するときのまとめ
英語字幕で見るとき
面白いドラマは、二周目は英語字幕で見る。
ポイント
- わからない単語は調べ、ドラマ内頻出単語は暗記できるようにする
- 将来的な目標は、読解でなく、字幕なしで聞き取れることなので、リスニングメインで字幕は補助
あくまでこれらは海外ドラマを見ることがメインな学習のメモなので、参考にしないことをおすすめします。
cocos2d関連で便利なサイト
貴重な日本語の情報です。まとめてくださった方々にはほんと感謝です。
Transition集
http://dkoubou2.chips.jp/blog6/2012/04/post_12.html
タイマー
http://applebite.me/archives/167 の下の方
CCSpriteの画像を切り替える
http://blog.9wick.com/2011/10/cocos2d-ccsprite/
汎用パターン集
http://kazukiq.ldblog.jp/archives/51845571.html
CCSpriteなどの削除
http://hamasyou.com/blog/archives/000387
シーン切り替え時の値の受け渡し
http://fernweh.jp/b/cocos2d-memo/#id-4
C言語の文字const char *とObjectiveCの文字列NSStringの変換
C言語の文字列とobjectivecの文字列の扱い方はわりと異なるので変換できないように思うのですが、NSStringクラスの関数を使って簡単に変換することができます。細かい文字列処理はCでやりたいってこともあると思うので覚えておくといいでしょう。
NSStringからCの文字列に変換する
これはとても簡単です。NSStringのUTF8string関数を呼ぶだけでNULL文字終端でUTF8のconst char*型の文字列を返してくれます。
NSString *str = @"abc";
const char *p = [str UTF8string];
Cの文字列からNSStringに変換する
initWithUTF8String関数にCの文字列を渡して初期化することでCの文字列からNSSTringに変換できます。
char str_c[100];
strcpy(str_c,"abc");
NSString *str = [ [ NSString alloc ] initWithUTF8String:str ];
ObjectiveCでNSString内の文字列検索をする方法のまとめ
ObjectiveCの文字列検索はrangeOfStringメソッドを使うことによって実現できますが、ほかの言語と比べてややこしい気がするのでまとめておきます。
基本的なrangeOfStringの使い方
NSString * str = @"abcdefg";
NSRange range = [str rangeOfString:@"cd"];
if (range.location == NSNotFound) {
NSLog(@"検索対象が存在しない場合の処理");
}
上のような例を実行すると、strのうち"cd"の範囲がNSRangeという形で返されます。
NSRangeは文字列の最初の文字の位置をrange.location、文字列の長さをrange.lengthとして取得でき、存在しない場合はlocationがNSNotFoundとなります。
上の例だとrange.location=2, range.length=2となります。
後ろから検索、範囲を指定して検索
NSString * str = @"ab000ab000ab000";
NSRange range1 = [str rangeOfString:@"ab" options:NSBackwardsSearch];//後ろから検索
NSRange range2 = [str rangeOfString:@"ab" range:NSMakeRange( 3, 9 )];//4~10文字の範囲で検索
NSStringの文字列連結方法のまとめ
NSStringの文字列連結はいろいろやり方があり、それぞれ向き不向きがあるので一応ここにまとめておきます。
NSMutableStringを使う
文字を変更できるクラスであるNSMutableStringのappendStringを使います。
NSMutableString* str = [NSMutableString string];
[testString setString:@"aaa"];
[testString appendString:@"bbb"];
追加してるっぽくて後で見たときわかりやすい感じです。元の変数が変わらないのはNSMutableStringを使う一番の利点だと思います。
stringByAppendingStringを使う
上のNSStringバージョンみたいな感じです。NSStringだと変更不可なので新しい変数を用意します。
NSString *str1 = @"aaa";
NSString *str2 = @"bbb";
NSString *str3 = [str1 stringByAppendingString:str2];
NSMutableStringは使いたくないって場合もあると思うのでそういうときはこの方法が定番です。
stringWithFormatを使う
NSStringの初期化メソッドであるstringWithFormatを使って結合してみます。
NSString *str1=@"aaa";
NSString *str2=@"bbb";
NSString *str3=[NSString stringWithFormat:@"%@%@",stringA,stringB];
単純につなげるだけでなく、間に:やーなどを挟んだりと自由にできるので応用効かせたい場合はこれがいいと思います。また、複数つなげるのも1つのメソッドでできるので便利です。
UIButtonをIB使わずに作成する
たくさんのボタンを作成したり、細かい設定をしたりする場合、IBで作成するよりもコードでUIButtonオブジェクトを生成させた方が楽な場合も多いです。今回それを使う機会があったので、メモとして残しておきます。
UIButtonの生成
手順としてはボタンを作るメソッド(最初から作っておく場合にはviewDidLoad)でUIButtonオブジェクトを作って、あるビューのサブビューに追加すればボタンの生成が完了します。
UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
//ここにボタンの設定を記述する
[self.view addSubview:button];
UIButtonの設定
上の「//ここにボタンの設定を記述する」の部分にボタンの設定を書きます。
枠を設定する
下の行を加えることでボタンのサイズと座標を設定することができます。
button.frame = CGRectMake(x座標,y座標,幅,高さ);
文字を設定する
下の行を加えることでボタンに表示される文字(title)を設定できます。
[button setTitle:@"Button" forState:UIControlStateNormal];
タップイベントを設定する
下の行を加えることによって@selectorの()の中がメソッド名となり、タップされるとこのメソッドが実行されます。forControlEventsはイベントの発生条件で、ここでは普通にタップしたときになってます。
[button addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];
これに加えて下のようなメソッドを作る必要があります。
(void)tapButton:(id)sender
{
//タップ時の動作
}
個別に設定するのが面倒くさい場合は、UIButtonオブジェクトのコンストラクタ(上でいうbuttonWithType)を別のものにすることで宣言時に設定することも可能です。
複数ボタンをまとめて作成するときのやり方
下のような関数を作成することによって各ボタンについて下の関数にtagとframeとtitleを渡してあげることで関数で定義されたようなボタンが返されます。
(UIButton *)createButton:(NSString*)title tag:(int)tag frame:(CGRect)frame
{
UIButton *button = [UIButton buttonWithType: UIButtonTypeRoundedRect];
button.frame = frame;
button.tag = tag;
[button setTitle:title forState:UIControlStateNormal];
[[button titleLabel] setFont:[UIFont systemFontOfSize:20.0f]];
[button addTarget:self action:@selector(tapButton:) forControlEvents:UIControlEventTouchUpInside];
return button;
}
メソッド名、クラス名、変数名をつけるときの大文字小文字
メソッドやクラス名、変数名をつけるときには暗黙の了解があるようなので紹介しておきます。必ずこれに従わなければならない訳ではないのですが、この付け方に慣れておくと自分や他人が見たときに何を意味するのかわかりやすくなったりしてコードの保守性があがります。
- クラス名は、1文字目のみ大文字に、2文字目以降は小文字にします。単語が2語つながっている場合、2語目以降の先頭だけ大文字にします。ViewControllerなど
- メソッド名は、基本的に小文字で単語が2語つながっている場合、2語目以降の先頭だけ大文字にします。viewDidLoadなど
- 変数名は、メソッド名と同じです。基本全て小文字にしておくといいと思います。
UIViewなど大文字の方がわかりやすいというものも多いのでこだわる場合は上の規則通りに書く必要はありません。ただなんとなくつける場合は規則通りに書く癖を付けておくといいと思います。
メソッドやクラス名、変数名をつけるときには暗黙の了解があるようなので紹介しておきます。必ずこれに従わなければならない訳ではないのですが、この付け方に慣れておくと自分や他人が見たときに何を意味するのかわかりやすくなったりしてコードの保守性があがります。