草庐IT

SMB1Protocol

全部标签

swift - 收到此错误 PageViewController 不符合协议(protocol) 'UIPageViewControllerDataSource'

我无法修复此错误或找出此错误的原因,错误显示在下面的屏幕截图中。只是尝试创建pageViewController的演示,但我无法添加dataSource类,而且self.dataSource=self。提前致谢。 最佳答案 仅仅为自定义类添加协议(protocol)定义是不够的。您必须至少提供UIPageViewControllerDataSource协议(protocol)的两个必需函数:funcpageViewController(pageViewController:UIPageViewController,viewContr

ios - 子类化与协议(protocol)

让我们从Class方法开始:classLoginCredentials{varid:Stringinit(userID:String){self.id=userID}}然后我们将有以下内容:classFacebookLoginCredentials:LoginCredentials{vartoken:Stringinit(userID:String,userToken:String){self.token=userTokensuper.init(userID:userID)}}和classTwitterLoginCredentials:LoginCredentials{vartoken

swift - 带有 Swift 协议(protocol)的通用类

我有一个像这样的基本协议(protocol):publicprotocolBasicSwiftClassLayout{varnibName:String{get}}我的课是这样的:publicclassBasicSwiftClass{}我定义了2个不同的结构,这样我就可以用2个不同的nib启动这个类:publicstructNormalLayout:BasicSwiftClassLayout{publicletnibName="NormalLayoutNibName"}和publicstructOtherLayout:BasicSwiftClassLayout{publicletnib

swift - 使用默认参数值声明协议(protocol)函数

我希望这个函数在协议(protocol)中:funcslideToRight(currentViewControllerviewController:UIViewController,completion:((Bool)->())?=nil){//dosomestuff}但是当我写这样的协议(protocol)时:protocolSomeDelegate{funcslideToRight(currentViewControllerviewController:UIViewController,completion:((Bool)->())?=nil)}我遇到了一个错误:Defaulta

objective-c - 为什么Objective-C类和协议(protocol)可以重名,而Swift不可以,语言实现有什么区别?

Swift,无法编译,编译器会直接报错。protocolTest{}structTest{}//Swiftcompileoutput://Untitled.swift:4:8:error:invalidredeclarationof'Test'structTest{}//Untitled.swift:2:10:note:'Test'previouslydeclaredhereprotocolTest{}Objective-C,可以编译成功,比如NSObject是类名,也是协议(protocol)名#import@protocolTest@end@interfaceTest@endint

swift - 如何检查是否符合 Swift 中关联类型的协议(protocol)?

当我想检查一个类型是否符合一个简单的协议(protocol)时,我可以使用:iflettype=ValueType.selfas?Codable.Type{}当协议(protocol)具有关联类型时,例如RawRepresentable具有RawValue,当我这样做时:iflettype=ValueType.selfas?RawRepresentable.Type{}编译器将显示以下错误:Protocol'RawRepresentable'canonlybeusedasagenericconstraintbecauseithasSelforassociatedtyperequirem

ios - 来自 Objective-C 的可选协议(protocol)不是应该在 Swift 中完成的事情吗?

在Objective-C中,使用符合协议(protocol)并设置委托(delegate)以允许两个对象相互通信是一种非常常见的范例。其中一部分是他们必须实现的可选协议(protocol)。Swift似乎并没有真正将其视为其语言的一部分。它有协议(protocol),但为了将协议(protocol)中的方法标记为可选,协议(protocol)需要一个objc前缀,告诉我它也是一个Objective-C遗留物?有没有我们应该做的更像Swift的事情?传递花哨的闭包之类的东西? 最佳答案 在thisDeveloperForumstopi

swift - 如何覆盖函数的协议(protocol)扩展默认实现?

是否可以获取以下代码来调用MyClass2:someFuncWithDefaultImplementation()?protocolMyProtocol:class{funcsomeFuncWithDefaultImplementation()funcsomeFunc()varsomeInt:Int{getset}}extensionMyProtocol{funcsomeFuncWithDefaultImplementation(){someInt=5}funcsomeFunc(){someFuncWithDefaultImplementation()}}classMyClass:My

Swift 4 使用协议(protocol)和 `Self` 伪造存在的方法

在Swift中有数百种使用协议(protocol)和Self来伪造存在性的解决方案,但它们大多指的是Swift2和Swift3可能带来的光明future......现在Swift4已经出来了,对泛型进行了很好的补充。但我找不到任何建议如何将其放入缺失的存在问题中。关于如何以Swift4方式解决这个问题有什么想法吗?例子:importUIKitprotocolBla{funccompare(other:Self)}extensionCGFloat:Bla{funccompare(other:CGFloat){print("ExtendedCGFloat")}}extensionUIEdg

ios - 类型不符合未定义的协议(protocol)

在Xcode6Beta2中,我编写了以下类:classItem:Printable,Hashable{vardescription:String{return"..."}varhashValue:Int{return1}}我收到一条错误消息,指出类型“Item”不符合协议(protocol)“Equatable”,即使我没有尝试实现名为“Equatable”的协议(protocol)。有没有人见过这样的行为?任何解决方案或解决方法?谢谢! 最佳答案 根据theHashabledocs:(请参阅该页面的最底部)Typesthatcon