1

我正在尝试迅速遵守此协议

协议

@protocol XLFormOptionObject <NSObject>

@required

-(NSString *)formDisplayText;

-(id)formValue;

@end

我的班级应该符合这个协议

@objc (myclass)
class myclass : XLFormOptionObject{

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

评论

据我了解,我应该用 Anyobject 更改 id,但 XCode 6.1 仍然给我编译器错误 - 类不符合协议

问题

任何建议如何使用指向类“id”实例的指针来符合协议

4

1 回答 1

0

您的问题不是formValue()功能,而是formDisplayText()功能。您必须强制解开字符串。我不清楚为什么这是必需的,因为返回值显然不是可选的,但是如果您查看 swift 如何将 objc 方法调用转换为桥接,您会注意到它几乎总是将方法返回值重新解释为强制解包。

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

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