Swift:SKNodeにはオプションのタイプが必要ですが、オプションのメンバーにはメンバーがありません

ガンジャン

新しいXCodeにアップデートする前に、Swiftゲームを動作させてコンパイルしていましたが、突然多くのエラーが発生しました。これが私が修正できなかった2つです。

func centerOnNode(node: SKNode ) {

   let cameraPositionInScene = node.scene?.convertPoint(node.position, fromNode: node.parent!)

   var y = CGFloat(node.parent?.position.y - cameraPositionInScene?.y!)            
   // ERROR:
   // Operand of postfix ‘!’ should have optional types; Type is CGFLoat

   let x = CGFloat(node.parent.position.x - cameraPositionInScene.x)
   // ERROR: 
   // SKNode? does not have a member position

   // push the camera a bit up
   y -= 75

   node.parent.position = CGPointMake(x, y)

私は本当にこれを取得していないと思います!と?ビジネス。ラッピング、アンラッピング、オプションタイプ。これはJavaまたはC#の用語で何ですか?

グレッグ

これは、node.scene決して nil、そして決してnode.parentない 仮定して機能しますnil

let cameraPositionInScene = node.scene!.convertPoint(node.position, fromNode: node.parent!)

var y = CGFloat(node.parent!.position.y - cameraPositionInScene.y)

let x = CGFloat(node.parent!.position.x - cameraPositionInScene.x)

それらが可能である場合はnil、代わりに次のコードを使用してください。

if let cameraPositionInScene = node.scene?.convertPoint(node.position, fromNode: node.parent!) {
    if let parent = node.parent {
        var y = CGFloat(parent.position.y - cameraPositionInScene.y)

        let x = CGFloat(parent.position.x - cameraPositionInScene.x)

        // push the camera a bit up
        y -= 75

        parent.position = CGPointMake(x, y)
    }
}

これは、値がないことを確認するためにテストし、ある場合はnil何もしません(最初の例のようにクラッシュする代わりに)。

オプションの仕組みの説明については、Appleの記事を参照してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Swift:SKNodeにはオプションのタイプが必要ですが、オプションのメンバーにはメンバーがありません

分類Dev

タイプ「SKNode」のSwift値にはメンバー「particleBirthRate」がありません

分類Dev

Swift TensorFlowLiteインタープリターエラー:タイプ「インタープリター」にメンバー「オプション」がありません

分類Dev

タイプ '[SKNode]'の値にはメンバー 'name'がありません

分類Dev

Swiftのオプションのバインディングにはまだnullデータがあります

分類Dev

タイプ「X」の値にはメンバー「y」がありません-プロトコルのオプションの関数

分類Dev

タイプ[NSObject:AnyObject]のディクショナリには、メンバー「value(forKeyPath:...)」がありません。

分類Dev

Gnomeの調整に「トップバー」メニューオプションがありません

分類Dev

一部のデバイスでは、オプションメニューがアクションバーに表示されません

分類Dev

タイプ ''の値にはswiftにメンバー ''がありません

分類Dev

モバイルオートメーションの許可または拒否オプションを要求するカメラベースのポップアップをどのように処理する必要がありますか?

分類Dev

タブバーの位置をスワイプする必要がありますが、アクションバーにはありません

分類Dev

条件付きバインディングのバインド値は、オプションタイプである必要があります[IOS-SWIFT]

分類Dev

volatileはオブジェクトのメンバーには必要ありませんが、プリミティブメンバーにのみ必要ですか?

分類Dev

"条件付きバインディングのイニシエーターは、 '[String]'ではなくオプション型である必要があります"

分類Dev

Powershell関数-パラメーターは、ある場合には必須であり、別の場合はオプションである必要があります

分類Dev

ARKit平面の検出-タイプ「ARView」の値にメンバー「セッション」がありません

分類Dev

変数をオプション値として宣言する場合、Swiftenumには「rawValue」という名前のメンバーがありません

分類Dev

変数をオプション値として宣言する場合、Swiftenumには「rawValue」という名前のメンバーがありません

分類Dev

オプションのパラメーターのデフォルト値としてUIViewControllerを使用していますが、「XにはYという名前のメンバーがありません」というエラーが表示されます。

分類Dev

sbtセッション内からのSparkアプリケーションのコンパイルが「オブジェクトapacheはパッケージorgのメンバーではありません」で失敗するのはなぜですか?

分類Dev

Xephyr:サーバーには-dpmsオプションの拡張子がありません

分類Dev

Wifiオプションがステータスバーにありません

分類Dev

Azure devops-リリースパイプラインには、ランタイムスタック用のPHP 7.2のオプションはありませんが、AzureAppサービスにはオプションがあります

分類Dev

Network Managerには、14.04を最新のLinuxイメージにアップグレードした後にモバイルブロードバンドを有効にするオプションがありません

分類Dev

HP 4545s Probookのハードウェアをオーバークロックできますか(BIOSにはオプションがありません)?

分類Dev

Solaris 11.3の更新時に、「「オプションの」依存関係のバージョンがありません...」

分類Dev

Angular2 +には、オプションのパラメーター用のrouterLinkActiveタイプのソリューションが必要です

分類Dev

フロー:パラメータのないオブジェクトタイプは、オプションのパラメータのあるオブジェクトタイプに割り当てることができません

Related 関連記事

  1. 1

    Swift:SKNodeにはオプションのタイプが必要ですが、オプションのメンバーにはメンバーがありません

  2. 2

    タイプ「SKNode」のSwift値にはメンバー「particleBirthRate」がありません

  3. 3

    Swift TensorFlowLiteインタープリターエラー:タイプ「インタープリター」にメンバー「オプション」がありません

  4. 4

    タイプ '[SKNode]'の値にはメンバー 'name'がありません

  5. 5

    Swiftのオプションのバインディングにはまだnullデータがあります

  6. 6

    タイプ「X」の値にはメンバー「y」がありません-プロトコルのオプションの関数

  7. 7

    タイプ[NSObject:AnyObject]のディクショナリには、メンバー「value(forKeyPath:...)」がありません。

  8. 8

    Gnomeの調整に「トップバー」メニューオプションがありません

  9. 9

    一部のデバイスでは、オプションメニューがアクションバーに表示されません

  10. 10

    タイプ ''の値にはswiftにメンバー ''がありません

  11. 11

    モバイルオートメーションの許可または拒否オプションを要求するカメラベースのポップアップをどのように処理する必要がありますか?

  12. 12

    タブバーの位置をスワイプする必要がありますが、アクションバーにはありません

  13. 13

    条件付きバインディングのバインド値は、オプションタイプである必要があります[IOS-SWIFT]

  14. 14

    volatileはオブジェクトのメンバーには必要ありませんが、プリミティブメンバーにのみ必要ですか?

  15. 15

    "条件付きバインディングのイニシエーターは、 '[String]'ではなくオプション型である必要があります"

  16. 16

    Powershell関数-パラメーターは、ある場合には必須であり、別の場合はオプションである必要があります

  17. 17

    ARKit平面の検出-タイプ「ARView」の値にメンバー「セッション」がありません

  18. 18

    変数をオプション値として宣言する場合、Swiftenumには「rawValue」という名前のメンバーがありません

  19. 19

    変数をオプション値として宣言する場合、Swiftenumには「rawValue」という名前のメンバーがありません

  20. 20

    オプションのパラメーターのデフォルト値としてUIViewControllerを使用していますが、「XにはYという名前のメンバーがありません」というエラーが表示されます。

  21. 21

    sbtセッション内からのSparkアプリケーションのコンパイルが「オブジェクトapacheはパッケージorgのメンバーではありません」で失敗するのはなぜですか?

  22. 22

    Xephyr:サーバーには-dpmsオプションの拡張子がありません

  23. 23

    Wifiオプションがステータスバーにありません

  24. 24

    Azure devops-リリースパイプラインには、ランタイムスタック用のPHP 7.2のオプションはありませんが、AzureAppサービスにはオプションがあります

  25. 25

    Network Managerには、14.04を最新のLinuxイメージにアップグレードした後にモバイルブロードバンドを有効にするオプションがありません

  26. 26

    HP 4545s Probookのハードウェアをオーバークロックできますか(BIOSにはオプションがありません)?

  27. 27

    Solaris 11.3の更新時に、「「オプションの」依存関係のバージョンがありません...」

  28. 28

    Angular2 +には、オプションのパラメーター用のrouterLinkActiveタイプのソリューションが必要です

  29. 29

    フロー:パラメータのないオブジェクトタイプは、オプションのパラメータのあるオブジェクトタイプに割り当てることができません

ホットタグ

アーカイブ