4

このコンテキストで使用されている WWDC ビデオでこの ui_orientation キャンディーを見ました

UIImage *finalImage = [[UIImage alloc] initWithCGImage:cgimg
                      scale:2.0f orientation:ui_orientation([displayImage properties])];

明らかに、CCImage の向きを読み取って UIImage を適切に作成しますが、これをコードで使用すると、次のエラーが発生します:関数 'ui_orientation' の暗黙の宣言は C99 では無効です

この関数を機能させるには、ソースにどのヘッダーを含める必要があるか知っていますか?

ありがとう。

注: WWDC 2012 - レッスン 510 at 25'16" ... UIImage の作成時

4

2 に答える 2

6

これは、コードを提供するセッション 422 からのものです。

方向プロパティを UIImageOrientation に変換します。

UIImageOrientation ui_orientation (NSDictionary* props)
{
    int o = [[props valueForKey:(id)kCGImagePropertyOrientation] intValue];
    UIImageOrientation map[] = {
        UIImageOrientationUp,
        UIImageOrientationUp, UIImageOrientationUpMirrored,
        UIImageOrientationDown, UIImageOrientationDownMirrored,
        UIImageOrientationLeftMirrored, UIImageOrientationRight,
        UIImageOrientationRightMirrored, UIImageOrientationLeft,
    };
    return map[o];
}

これも便利なヒントです。すべての WWDC セッションからすべての PDF をダウンロードし、ハード ドライブに保管しておいてください。彼らは多くのスペースを取りません。そうすれば、どのセッションについて話しているCATransactionか、または (ここのように) 作成された関数を見つけたい場合、Spotlight を使用して、タイトルとしてセッション番号を持つ PDF を見つけることができます。

于 2013-04-12T21:48:35.297 に答える
3

H2CO3の提案に従って、私は走った

otool -tv UIKit | grep ui_orientation

UIKitのパスはどこですか

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/Frameworks/UIKit.framework

コマンドは結果を返しませんでした。そのためui_orientation、iOS SDK 6.1 のように、 function のパブリック定義がないことを確認できます。

それはおそらくその特定の例のために定義されたマクロだったので、Apple がそれを明確にしなかったのは残念です。

于 2013-04-12T21:13:26.667 に答える