メソッドやプロパティを追加します。
#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(こっちも同じはず)
うん、間違いないですね。
ん?名前?そこは突っ込まんといてください……。