メンバー演算子 '%'には、タイプ 'ViewController'の引数が少なくとも1つ必要です。

グレッグ

Xcodeアプリでpostfix単項演算子を使用してパーセンテージを計算するためのカスタム関数を使用して、単純なSwift3テンプレートを作成しようとしています。私の以前の投稿で受け入れられた回答はすでにPlaygroundでこれを行う方法を示しているため、これは重複した質問のように見えるかもしれません。しかし、その後、カスタム関数がXcodeプロジェクトで同じように機能しないことがわかりました。

以下のテンプレート、私は宣言しました’operator' at file scope(または少なくとも私はそう信じています)。しかし、接尾辞関数が宣言されると、Xcodeは次のようにアドバイスします。

    Operator '%' declared in type 'ViewController' must be 'static' 

修正を提供します-挿入しstaticます。staticXcodeを挿入し、その後アドバイス

    Member operator '%' must have at least one argument of type 'ViewController’.

%関数をstaticXcodeプロジェクトに含める必要がある理由と、同じ行のコンテキストで最後のエラーメッセージが何を意味するのかを誰かが説明できますか以下を参照)?ありがとう

ドラフトテンプレート

import UIKit

postfix operator %

class ViewController: UIViewController {

var percentage = Double()

override func viewDidLoad() {
    super.viewDidLoad()

    percentage = 25%
    print(percentage)
    }

static postfix func % (percentage: Int) -> Double {
    return (Double(percentage) / 100)
    }
}

編集されたテンプレート

承認された回答に基づく作業テンプレートは次のとおりです。ファイルスコープで演算子を宣言することの意味がわかりませんでした。

import UIKit


postfix operator %

postfix func % (percentage: Int) -> Double {
return (Double(percentage) / 100)
}


class ViewController: UIViewController {

var percentage = Double()

override func viewDidLoad() {
    super.viewDidLoad()

    percentage = 25%
    print(percentage)
    }
}

脚注

受け入れられた回答に基づいて、単一のファイルにグループ化されたカスタム演算子関数に、同じプロジェクト内の他のファイルからアクセスできるようになりました。詳細については、こちらをご覧ください

マーティンR

ファイルスコープで「演算子」を宣言しました

いいえ、しませんでした。定義の範囲でUIViewController定義しました。

postfix operator %

class ViewController: UIViewController {

    // ...

    static postfix func % (percentage: Int) -> Double {
        return (Double(percentage) / 100)
    }
}

一つはできるが、それらはそのタイプの少なくとも一つの引数を取る場合にのみ、スウィフト3タイプの静的メンバ関数として演算子を定義します。

問題を修正するには、宣言をファイルスコープに移動します。

postfix operator %

postfix func % (percentage: Int) -> Double {
    return (Double(percentage) / 100)
}

class ViewController: UIViewController {

    // ...

}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

TypeScriptの可変個引数メソッドに少なくとも1つの引数が必要です

分類Dev

java.lang.IllegalStateException:Autowiredアノテーションには少なくとも1つの引数が必要です

分類Dev

Swiftのオプションのメソッド引数ですが、少なくとも1つは入力する必要があります

分類Dev

検証オブジェクトには、少なくとも1つの演算子/流星モンゴが必要です

分類Dev

構造化タイプには、少なくとも1つのフィールドc#が必要です。

分類Dev

C#インデクサーには少なくとも1つのパラメーターが必要です

分類Dev

停止したコンテナをすべて削除します。「dockerrm」には少なくとも1つの引数が必要です

分類Dev

Pythonタプルに少なくとも1つのコンマが必要なのはなぜですか?

分類Dev

Laravelには少なくとも1つのフィールドが必要です

分類Dev

Springでは少なくとも1つのマッピングが必要です。

分類Dev

symfonyエラー:RuntimeException構成には少なくとも1つのドメインが必要です

分類Dev

C ++演算子のオーバーロードで、「クラス型のパラメーターが少なくとも1つある」必要があるのはなぜですか。

分類Dev

「dockerrmi」には少なくとも1つの引数が必要です

分類Dev

「dockercontainerrun」には、少なくとも1つの引数が必要です

分類Dev

Junit5エラー。この@ParameterizedTestには少なくとも1つの引数を指定する必要があります

分類Dev

JUnit構成エラー:この@ParameterizedTestには少なくとも1つの引数を指定する必要があります

分類Dev

コレクション引数 'foreignKeyPropertyNames'には、少なくとも1つの要素が含まれている必要があります

分類Dev

クラスのメソッドには、インスタンスを参照するパラメーターが少なくとも1つ必要ですか?

分類Dev

SMOデータベース作成の例外:「PRIMARYファイルグループには少なくとも1つのファイルが必要です」

分類Dev

入力のグループとテキスト領域に少なくとも1つの値が必要です

分類Dev

xcodebuild:エラー:オプション 'Destination'には、 'key = value'の形式のパラメーターが少なくとも1つ必要です

分類Dev

createDataPartitionのエラー....:yには少なくとも2つのデータポイントが必要です

分類Dev

パセリバリデーター-少なくとも1つのフィールドが必要です

分類Dev

指定された少なくとも1つのラベルはy_trueにある必要があり、ターゲットベクトルは数値です

分類Dev

複数のオプションの引数を使用してPHPで関数を記述できますが、少なくとも1つを使用する必要がありますか?

分類Dev

抽象クラスには少なくとも1つの抽象メソッドが必要ですか?

分類Dev

(ROSEプロットエラー)エラー:ファセット変数には少なくとも1つの値が必要です

分類Dev

Mongoエラー:$ sortステージには少なくとも1つのソートキーが必要です

分類Dev

「マルチパートボディには少なくとも1つのパートが必要です」

Related 関連記事

  1. 1

    TypeScriptの可変個引数メソッドに少なくとも1つの引数が必要です

  2. 2

    java.lang.IllegalStateException:Autowiredアノテーションには少なくとも1つの引数が必要です

  3. 3

    Swiftのオプションのメソッド引数ですが、少なくとも1つは入力する必要があります

  4. 4

    検証オブジェクトには、少なくとも1つの演算子/流星モンゴが必要です

  5. 5

    構造化タイプには、少なくとも1つのフィールドc#が必要です。

  6. 6

    C#インデクサーには少なくとも1つのパラメーターが必要です

  7. 7

    停止したコンテナをすべて削除します。「dockerrm」には少なくとも1つの引数が必要です

  8. 8

    Pythonタプルに少なくとも1つのコンマが必要なのはなぜですか?

  9. 9

    Laravelには少なくとも1つのフィールドが必要です

  10. 10

    Springでは少なくとも1つのマッピングが必要です。

  11. 11

    symfonyエラー:RuntimeException構成には少なくとも1つのドメインが必要です

  12. 12

    C ++演算子のオーバーロードで、「クラス型のパラメーターが少なくとも1つある」必要があるのはなぜですか。

  13. 13

    「dockerrmi」には少なくとも1つの引数が必要です

  14. 14

    「dockercontainerrun」には、少なくとも1つの引数が必要です

  15. 15

    Junit5エラー。この@ParameterizedTestには少なくとも1つの引数を指定する必要があります

  16. 16

    JUnit構成エラー:この@ParameterizedTestには少なくとも1つの引数を指定する必要があります

  17. 17

    コレクション引数 'foreignKeyPropertyNames'には、少なくとも1つの要素が含まれている必要があります

  18. 18

    クラスのメソッドには、インスタンスを参照するパラメーターが少なくとも1つ必要ですか?

  19. 19

    SMOデータベース作成の例外:「PRIMARYファイルグループには少なくとも1つのファイルが必要です」

  20. 20

    入力のグループとテキスト領域に少なくとも1つの値が必要です

  21. 21

    xcodebuild:エラー:オプション 'Destination'には、 'key = value'の形式のパラメーターが少なくとも1つ必要です

  22. 22

    createDataPartitionのエラー....:yには少なくとも2つのデータポイントが必要です

  23. 23

    パセリバリデーター-少なくとも1つのフィールドが必要です

  24. 24

    指定された少なくとも1つのラベルはy_trueにある必要があり、ターゲットベクトルは数値です

  25. 25

    複数のオプションの引数を使用してPHPで関数を記述できますが、少なくとも1つを使用する必要がありますか?

  26. 26

    抽象クラスには少なくとも1つの抽象メソッドが必要ですか?

  27. 27

    (ROSEプロットエラー)エラー:ファセット変数には少なくとも1つの値が必要です

  28. 28

    Mongoエラー:$ sortステージには少なくとも1つのソートキーが必要です

  29. 29

    「マルチパートボディには少なくとも1つのパートが必要です」

ホットタグ

アーカイブ