10

Objective-C から迅速な拡張機能にアクセスできません。

.swift ファイルに次のコードがあります。

extension NSDictionary {
    func dictionaryAsJsonString() -> NSString {
        var err: NSError?
        var data = NSJSONSerialization.dataWithJSONObject(self, options: NSJSONWritingOptions.PrettyPrinted, error: &err)
        var string = NSString(data: data, encoding: NSUTF8StringEncoding)
        return string
    }
}

.m ファイルで次のことができると期待しています。

[dictionary dictionaryAsJsonString];

しかし、それは私のメソッドを見つけることができず、オートコンプリートしません。

他の迅速なオブジェクトにアクセスできるため、インポートが正常に機能していることはわかっています。

4

3 に答える 3

1

辞書を使用するだけで十分簡単です

 20> extension Dictionary {
 21.     func toJSONString () -> String { return "my dictionary" }
 22. }
 23> ["a": 1, "b": 2].toJSONString()
$R10: String = "my dictionary"

Apple のドキュメントには、Objective-C クラスでの拡張機能の使用については言及されていません。

于 2014-06-03T23:05:41.170 に答える