2016-05-11 10 views
0

デバッグ、リリースなどのさまざまなモードの値をロギングするカスタムロガーを作成しましたが、デフォルトを使用するたびにその値を使用します。print() Xcodeは、カスタムロガー。print()のXcode(スウィフト)スローエラー

私はthisを参照しましたが、そこにエラーをスローし、ビルドフェーズを追加するのではありません。

すべてのアイデア?

答えて

2

あなたのモジュールでprintを内蔵しており、「利用できない」それをマークシャドウできます

// swift 3: 
@available(*, unavailable, message: "use Logger instead!") 
internal func print(_ items: Any..., separator: String = " ", terminator: String = "\n") { 
    Swift.print(items, separator: separator, terminator: terminator) 
} 

// swift 2: 
@available(*, unavailable, message="use Logger instead!") 
internal func print(items: Any..., separator: String = " ", terminator: String = "\n") { 
    Swift.print(items, separator: separator, terminator: terminator) 
} 

結果は以下のようになります。

Xcode errors

(の別のインスタンスがまだありますがprint<Target>(..., to output: inout Target)私は隠すことは気にしないが、誰もその機能を誤って使用するとは思わない。)

示されているように、修飾名Swift.printを使用して、緊急時の実際の機能を参照することができます。

これは、自分のモジュールにのみ影響します。モジュール外のユーザーにprintを使用させないように強制することはできません。

+0

kennytm:ありがとうございます。完璧! –

関連する問題