メソッドやプロパティを追加

メソッドやプロパティを追加します。

インターフェイスの追加

#import <UIKit/UIKit.h>

@interface testappViewController : UIViewController
// プロパティ追加
@property (assign) NSInteger counter; // assign=参照でなく値を使う
// メソッド追加
- (NSString *) fullName:(NSString *)sei lastName:(NSString *)mei;
- (void) countUp;

@end

整数データの「counter」、 それからメソッドとしてお名前追加の「fullName lastName」、 そしてカウントアップが追加されています。

たぶんここでの要注意は「fullName lastName」だと思います。 C/C++/Java/AS3あたりの使い方の感覚でいると間違いなく面食らうでしょう。「なにこれ?」と。

たぶん教本でもこのためにページを割いてると思うので、僕も復習がてら以下に書いていきます。

実行部を作ります。

なんか、全力で「変態だーっ!」と言いたくなるような文法ですね。カウンタの方はともかく、名前の方はマジでわけわかめです。なので、実際に使っているところも見てみます。

// フルネームを作る
- (NSString *)fullName:(NSString *)sei lastName:(NSString *)mei{
    NSString *sei_mei = [NSString stringWithFormat:@"%@ %@",sei,mei];
    return sei_mei;
}

// counterをカウントアップ!
- (void)countUp{
    // interfaceで作成した「counter」にこうやってアクセスできる。
    _counter++;
}

さて、本命の実行部は以下だ。

    // さあ。作ったやつを動かしてみようぞ。
    NSString *namae = [self fullName:@"藤堂" lastName:@"加奈"];
    NSLog(@"彼女のフルネームは、 %@",namae);

    [self countUp];

    NSLog(@"カウンターは %d", _counter);
    NSLog(@"カウンターは %d(こっちも同じはず)", self.counter);

この名前設定のとこを見て、はじめて「ああなるほど」と僕は思いました。え、遅い?そ、そうですか orz

けど、なるほどなんですね。こうして最後まで見てみると納得できますね。

なお、countUpを呼んでいるのは一回なので、最後のNSLogの結果はどちらも1になるはずですね。見てみましょうか。

実行結果

2013-12-20 17:05:35.791 ctest4[75403:70b] 彼女のフルネームは、 藤堂 加奈
2013-12-20 17:05:35.792 ctest4[75403:70b] カウンターは 1
2013-12-20 17:05:35.793 ctest4[75403:70b] カウンターは 1(こっちも同じはず)

うん、間違いないですね。

ん?名前?そこは突っ込まんといてください……。


この本を読んでいます。なかなか読み応えあります。