0

次のオブジェクトをメソッドに渡す必要があります。そのメソッドでオブジェクトを変更して、メソッドの呼び出し後に、変更したオブジェクトを使用して先に進むことができるようにします。

AVMutableCompositionTrack *compositionVideoTrack[2];

現在、このように渡します:

[self buildShow:&compositionVideoTrack];

buildshow メソッドは次のようになります。

-(void)buildShow:(AVMutableCompositionTrack**)videoTracks{
}

次のコンパイラ警告が表示されますが、現在は機能していません。

'AVMutableCompositionTrack *__strong (*)[2]' をタイプ 'AVMutableCompositionTrack *__autoreleasing *' のパラメーターに送信する互換性のないポインター タイプ

これを機能させるにはどうすれば変更できますか?

4

2 に答える 2

2

次のように渡すだけです。

[self buildShow:compositionVideoTrack];

次のように宣言すると、次のようになります。

AVMutableCompositionTrack * __autoreleasing compositionVideoTrack[2];

これは既にポインターの配列であるため、パラメーターの型 ( ) と互換性がありますAVMutableCompositionTrack**

于 2012-10-25T22:32:42.870 に答える
0

プロパティを操作している場合を除き、次のようにする必要があります (メソッドは同じ型のオブジェクトを返すことに注意してください)。

メソッドコンストラクター:

-(AVMutableCompositionTrack *)buildShow:(AVMutableCompositionTrack *)videoTracks {
    // do something
    return newVideoTracks;
}

そして、メソッド呼び出し:

newVideoTracks = [self buildShow:compositionVideoTrack];

プロパティを使用する場合は、パラメーターのない void メソッドを使用できます。

于 2012-10-25T22:36:20.437 に答える