私はプログラミングをして以来、ずっとずっと続いていました。 'ok'にC & C++を読むのに使われました。基本的なObjective-Cの質問...私を夢中にする
私は、(NSMutableArray
を使用して)配列の内容を操作するために使用したい非常に単純なクラスを持っています。配列はオブジェクトとして保持する必要がありますので、プログラムの実行中に複数の更新を行うことができます(まだ状態データをディスクに保存することを心配していません)。
これは私の問題です。 Alloc/Init my Arrayオブジェクトをいつどこで/いつ実行すれば、iPhoneのビューでボタンをクリックするたびに使用可能な状態になるのかはわかりません。
インスタンス変数として配列を含むViewController
のサブクラスを作成しようとしていますが、これはビューからのボタンクリックに応答するコードで参照できます。私は3つのアプローチを試しました
私は同じクラスの一部として記述したメソッドで配列インスタンス変数を参照しようとしました。このバージョンのコードでは、Alloc/Initはどこにもありません。 addObject関数を呼び出すと、配列オブジェクトが割り当てられていない/初期化されていないために失敗したように見えます。
私はまた、
viewWillDisplay
メソッドで配列オブジェクトのインスタンスをAlloc/Initしようとしました。 Xcodeコンパイラは、私の新しく割り当てられたオブジェクトが使用されることはないという文句を言います。キックの場合、私は「ボタンクリック」メソッドの範囲内でalloc/initを行っていますが、私のボタンをクリックするたびに新しいインスタンスが割り当てられます。ここで
.h
と
.m
ファイルに持っているもので、誰かがGIANTの空白を埋めることができれば
は本当にそれをお願い申し上げ、私は明らかに持っている(これは、シナリオ1を示します) Instance Variableオブジェクトをどのように使用するのかを私が理解しています。 (私はOBJの-C..etc上のリンゴのドキュメントの多種多様を読んでも説明を見つけることを試みる私の頭脳をググ
.H:。。
#import <UIKit/UIKit.h>
@interface ArrayManagerViewController : UIViewController {
NSMutableArray *buttonArray;
}
- (IBAction)buttonClicked:(id)sender;
@end
そして.M
あなたは構文、CとSmalltalkのが基本的に2つの種類を持っているので、#import "ArrayManagerViewController.h"
@implementation ArrayManagerViewController
- (IBAction) buttonClicked:(id)sender {
NSString *senderTitle = [sender currentTitle];
int intSenderTitle = [senderTitle intValue];
[buttonArray insertObject:[NSString stringWithFormat:@"%d",
intSenderTitle]
atIndex:intSenderTitle];
for (id obj in buttonArray)
NSLog(@"Object Value %@", obj);
}
を書き始める前に、developer.apple.com上にObjCの基礎とココアのメモリ管理をお読みください。グローバル配列やシングルトンを作成する方法を知りたいですか? –