6101


iPhoneアプリを開発中です。  
あるクラスの中にある数値を別のクラスで使えるようにするにはどうすればいいのでしょうか。

元のクラスで数値を準備しておき、

[code]

    // moto.h
    @property NSInteger * nextImageIdx;
    
    // moto.m
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
         id suji1 = 100;
         _nextImageIdx = suji1;
    }
    
[/code]

先のクラスで元のクラスをインポートすれば準備しておいた数値を使えるのでは、と思ったのですがうまくいきません。

[code]

    // saki.h
    #import "moto.h"
    
    // saki.m
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
         id suji2 = _nextImageIdx;
    }
    
[/code]

`suji2`に「100」が入っていて欲しいのですが、そうはなりません。  
「_nextImageIdxが宣言されていません」とエラーが出てしまいます。  
`_nextImageIdx`に入れておいた数値を使えるようにするにはどうすれば良いのでしょうか。  
初歩的な質問で申し訳有りませんが何卒よろしくお願いいたします。


CC BY-SA 3.0
2015-02-07T11:15:11.393
6100
2015-02-07T12:55:17.560
2015-02-07T12:55:17.560
30
7470
question
objective-c
あるクラスの中にある数値を別のクラスで使えるようにするには


質問の`nextImageIdx`はインスタンスプロパティですので、「moto.h」のインスタンスの参照が無ければ利用できません。

もし継承を行っているのであれば`self.nextImageIdx`でアクセスできます。

ビューコントローラー間で値を渡したいのであれば、画面遷移元でプロパティを設定してやる必要があります。`prepareForSegue`等で調べればよいと思います。

それから質問とは直接関係ないですが、`NSInteger *`より`NSInteger`が適当ではないですか？


CC BY-SA 3.0
2015-02-07T11:33:28.543
6101
2015-02-07T11:33:28.543
5750
6100
answer


「_nextImageIdx」は、プライベートなインスタンス変数なので、クラス（インスタンス）外部からアクセスできません。禁止されています。アクセスするには、プロパティ「nextImageIdx」経由である必要があります。  
プロパティは、クラス（インスタンス）に従属しているので、

[code]

    (Instance Name).nextImageIdx
    
[/code]

このようにインスタンス名にドットで接続した書式で用います。


CC BY-SA 3.0
2015-02-07T11:36:38.363
6103
2015-02-07T11:36:38.363
7362
6100
answer