3108


自分なりにいろいろ調べてみたのですがどうしても分からないので質問させていただきます。 XCode 5.0 です

[code]

    -(void)tick:(NSTimer *) theTimer  {
    
        switch (segment.selectedSegmentIndex){
            case 0:
                [self countTimeup=kTimeup];
                break;
    
            case 1:
                [self countTimeup=hTimeup];
                break;
    
            case 2:
                [self countTimeup=eTimeup];
                break;
    
            default:
                break;
    
        }        
    }
    
[/code]

エラーが出るのは三カ所の `[self countTimeup~];` で `Expected']'` のエラーが出ます。
SegmentedControlのボタンによってcountTimeupに違う値を代入したいです。
質問の意図が分かりにくかったら申し訳ないです、どうかお助けください。

**追記分**

ありがとうございます以下がエラーメッセージになります。

[code]

    [self setcountTimeup:kTimeup];
    No visible @interface for 'ViewController' declares the selector 'setcountTimeup:'
     self.countTimeup=kTimeup;
    Property 'countTimeup' not found on object of type 'ViewController *'; did you mean to access instance variable 'countTimeup'?
    countTimeup=kTimeup;
    Assigning to 'NSInteger *' (aka 'int *') from incompatible type 'float'
    
[/code]

念のためすべてのパターンを書いておきました。

**再追記分**

Onodaさん見にくいのでこちらに書きました、ご確認お願いします。

[code]

    #define kTimeup (2.0f/kTimerMoleInterval)
    
    #define hTimeup (1.0f/hTimerMoleInterval)
    
    #define eTimeup (0.5f/eTimerMoleInterval)
    
    #define kTimerMoleInterval 1.0f
    #define hTimerMoleInterval 0.5f
    #define eTimerMoleInterval 0.3f
    
[/code]

`countTimeup` は `.m` 内の

[code]

    @implementation ViewController{}
    NSInteger *countTimeup;
    
[/code]

このように記述しています。


CC BY-SA 3.0
2015-01-01T10:37:45.943
2898
2015-01-08T00:27:40.400
2015-01-08T00:27:40.400
4978
5967
question
objective-c
switch文内で変数を代入したい


countTimeupがプロパティであれば

[code]

    [self setCountTimeup:kTimeup];
    
[/code]

または

[code]

    self.countTimeup=kTimeup;
    
[/code]

だと思われます。

変数であれば

[code]

    countTimeup=kTimeup;
    
[/code]

です。

エラーの内容からすると、kTimeupはポインタ型のようですので`*kTimeup`としてください。


CC BY-SA 3.0
2015-01-01T10:46:49.093
2901
2015-01-02T07:30:22.420
2015-01-02T07:30:22.420
5750
5750
2898
answer


countTimeup と kTimeup/hTimeup/eTimeup の定義はどこに、どのように記述してるでしょうか？

これが分からないことには正解を答えることはできませんが、エラーから察するにクラスに属する変数ではなさそうなので、変数の型を合わせて↓のスタイルで代入してみてください。

[code]

    countTimeup=kTimeup;
    
[/code]


CC BY-SA 3.0
2015-01-05T06:22:07.250
3108
2015-01-05T06:22:07.250
2079
2898
answer


まず、NSIntegerとは、名前が意味するようなオブジェクトではなくて、実際には、

typedef long int NSInteger;

と定義されてます。これは、Xcodeのクラスリファレンスの引き方を知っている人なら、two clicksで、ドキュメントをだせる。

だから、あなたのやっているのは、

long int *countTimeup;

countTimeup = float_value;

ということで、Cの意味でも全然、間違いなわけです。なぜなら、左辺は、アドレス値を要求しているわけだし、 右辺は、floatの値だから。

正しくは、

float countTimeup;

と宣言して、それに計算式を代入する。

countTimeup= xxxxxx;


CC BY-SA 3.0
2015-01-08T00:08:15.267
4255
2015-01-08T00:08:15.267
75
2898
answer