1

このプロトコルに迅速に準拠しようとしています

プロトコル

@protocol XLFormOptionObject <NSObject>

@required

-(NSString *)formDisplayText;

-(id)formValue;

@end

このプロトコルに準拠する必要がある My Class

@objc (myclass)
class myclass : XLFormOptionObject{

     var formDisplayText: NSString {
        return self.name
    }
    var formValue: AnyObject {
        return self
    }
}

コメント

私の理解では、IDをAnyobjectで変更する必要がありますが、XCode 6.1ではまだコンパイラエラーが発生します-クラスはプロトコルに準拠していません

質問

クラス「id」のインスタンスへのポインターを使用してプロトコルに準拠する方法についての提案

4

1 に答える 1

0

あなたの問題は機能ではなくformValue()formDisplayText()機能です。文字列を強制的にアンラップする必要があります。戻り値は明らかにオプションではないため、これが必要な理由は明確ではありませんが、ブリッジングのために objc メソッド呼び出しを迅速に変換する方法を見ると、ほとんどの場合、メソッドの戻り値が強制アンラップとして再解釈されることがわかります。

//MARK: - XLFormOptionObject
func formDisplayText() -> String! {
    return self.status
}

func formValue() -> AnyObject {
    return self.ID
}
于 2015-08-01T17:57:46.567 に答える