1

NameAndPassword の例 ( https://github.com/skycocker/NameAndPassword ) を拡張しており、この実装ファイル (https://github.com/skycocker/NameAndPassword/blob/master/NameAndPasswordPlugin) で IOBluetooth メソッドにアクセスする必要があります。メートル

インターフェイスは次のようになります。

@interface EXNameAndPassword : SFAuthorizationPluginView 

CBCentralManagerDelegateappdelegate のように継承するにはどうすればよいですか。

@interface AppDelegate : NSObject <CBCentralManagerDelegate, CBPeripheralDelegate>

EXNameAndPasswordSFAuthorizationPluginView と CBCentralManagerDelegate などの両方から継承する必要があります。これはとても簡単だと思います。私は obj-c の初心者です。コンポジションについて読みましたが、うまくいきません。

私が現在持っているのは

 @interface EXNameAndPassword : SFAuthorizationPluginView <CBCentralManagerDelegate, CBPeripheralDelegate>

しかし、合成されていないプロパティに関する警告が表示され続けます-継承を必要としないプロジェクトでそれらを合成する必要はなかったSFAuthorizationPluginViewので、何か間違ったことをしていると思います。

4

2 に答える 2

2

「プロパティが合成されていません」という警告は、プロトコルで定義されたプロパティに関連しています。

クラス @properties では、実装で自動的に @syntheized されますが、プロトコルでは、合成するのは適合クラスの責任であるため、以下を追加します。

@synthesize protocolPropertyName = _protocolPropertyName;

EXNameAndPassword.m

于 2014-03-22T17:16:05.453 に答える
0

I got the problem.

@interface EXNameAndPassword : SFAuthorizationPluginView <CBCentralManagerDelegate, CBPeripheralDelegate> 

is perfectly fine, I just had to disable architectures other than x86_64 in build settings.

Source: http://www.cocoabuilder.com/archive/cocoa/198573-property-problem.html

于 2014-03-22T17:38:14.500 に答える