0

iOS の将来のバージョンで変更される可能性があるため、プライベート API 関数またはクラスを使用することは禁止されています。プライベート機能が新しいiOSでパブリックになった場合、それが許可されるかどうか疑問に思っています。

私の例は、3.2 より前の iOS で currentTime というプライベート プロパティを持つ MPMoviePlayerController です。バージョン 3.2 から currentPlaybackTime と呼ばれ、使用できるようになりました。新しいバージョンで使用できる場合、古いバージョンで使用できますか?

ありがとう

4

1 に答える 1

1

いいえ、古いバージョンの iOS では、プロパティはまだ非公開です。その理由は推測することしかできません。

このような場合、以前の OS では利用できなかった新機能をサポートしようとするときと同じアプローチを取る必要があります: 可用性に基づいて条件付きでそれらを使用します。

プロパティを使用する場合はcurrentPlaybackTime、それが宣言されているフレームワークに対して弱いリンクを作成し、その可用性について実行時チェックを行う必要があります。

このようなもの:

if ([playerController respondsToSelector:@selector(currentPlaybackTime)])
{
    // do something with currentPlaybackTime
}
else
{
    // fail-over to something supported and not private.
}

覚えておいてください: iOS アプリをコンパイルするときは、最新かつ最高の iOS SDK バージョンに対してコンパイルし、展開ターゲット設定を、サポートする iOS の最も古いバージョンに設定する必要があります。

于 2010-10-15T09:01:07.320 に答える