ios Swift XLForm - 符合协议 XLFormOptionObject

Posted

技术标签:

【中文标题】ios Swift XLForm - 符合协议 XLFormOptionObject【英文标题】:ios Swift XLForm - Conform to Protocol XLFormOptionObject 【发布时间】:2014-11-20 06:39:01 【问题描述】:

我正在尝试尽快遵守此协议

协议

@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”实例的指针来遵守协议的任何建议

【问题讨论】:

【参考方案1】:

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

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


func formValue() -> AnyObject 
    return self.ID

【讨论】:

以上是关于ios Swift XLForm - 符合协议 XLFormOptionObject的主要内容,如果未能解决你的问题,请参考以下文章

多种协议的 Swift 类一致性(XCode 7、iOS 9、Swift 2.1)

Swift 编译器错误:“类型‘水印’不符合协议‘ViewModifier’”

ios 8.1:类型“ViewController”不符合协议“UICollectionViewDataSource”

类型“AnyObject”不符合协议“NSFetchRequestResult”

更改 XLFORM 行的值

iOS 7.1 上的 XLForm 空白