2017-03-12 19 views
-4

私のiOSアプリケーションNSMutableArrayを起動し、実行時にボタンで保持するオブジェクトを変更したいと思います。これまではViewController.mのviewDidLoad {}で配列を初期化できましたが、今は私のbuttonPressedメソッドにアクセスできません。ホールドファイルの配列にアクセスできるようにするにはどうすればよいですか?ボタンが押されたときにNSMutableArrayに値を追加する方法

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
    NSMutableArray *toCalculate = [@[@0] mutableCopy]; 
} 


- (IBAction)numbersButtonsPressed:(UIButton *)sender { 
    NSLog(@"%ld\n", sender.tag); 
    [toCalculate addObject:[NSNumber numberWithLong:sender.tag]]; 
} 
+1

ないスクリーンショットのように、問題のコードを入れてください。 'viewDidLoad'のローカル変数ではなく、配列としてプロパティを宣言する必要があります – Paulw11

答えて

0

グローバル(クラス変数)ではないローカル変数(関数)のように変数を宣言します。問題の

What is global variable?

ソリューションは、次のとおりです。

#import "ViewController.h" 

@interface ViewController(){ 
    NSMutableArray *toCalculate; 
} 
@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    toCalculate = [@[@0] mutableCopy]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 



- (IBAction)numbersButtonsPressed:(UIButton *)sender { 
    NSLog(@"%@",toCalculate); 
    [toCalculate addObject:[NSNumber numberWithLong:sender.tag]]; 
} 


@end 
0

おかげでポール、 あなたはViewController.hファイル内@propertyとしてそれを実装した場合、彼が言ったようにそれが動作します。

@interface ViewController: UIViewController 

    @propety NSMutableArray *giveItAName 

    @end 
関連する問題