1

Objective-Cで、クラスからクラスsynthesized (assigned)に属性を設定したいCompassB

これは私のコードです...

for(Compass * ind in CompassList){  
    if([[(Compass*)ind showAnalog] isEqualToString:str]){  
        ind.analogValue=11.0;  
    }  
}

ただし、このエラーが発生します...

Request for member analogValue in something not a structure or union.

自分のセッターを使用して、のように呼び出すことで、このエラーを回避することができました[ind updateValue:11.0];[(Compass*)currentDevice analogValue];ただし、後で別のクラスのように合成ゲッターを呼び出すと、次の例外が発生します...

'NSInvalidArgumentException': [Compass digitalValue]: unrecognized selector sent to instance 0x613ca20

誰かが私がこれをどのように行うべきかを理解するのを手伝ってくれませんか。

4

1 に答える 1

0

indicatorList を type として高速に列挙しIndicator、その下の 1 行を としてキャストしていCompassます。これがタイプミスではなく、すべての値が型である場合はCompass、コードを次のように変更します。

for(Compass * compass in indicatorList){  
    if([[compass showAnalog] isEqualToString:str]){  
        compass.analogValue=11.0;  
    }  
}

実際の問題については、問題に関連するコードを投稿していません。showAnalog原因は、呼び出しているコードが原因であると推測しています[(Compass*)currentDevice analogValue];。これはすべて、キャストが正しくないか、Compassクラスが完全に実装されていないことに関連している可能性があります。

于 2011-03-30T21:08:51.243 に答える