草庐IT

developers_guide_protocol

全部标签

ios - 使 swift 类符合协议(protocol) - 在静态/类级别

我正在尝试在Swift中构建一个通用的UITableViewController子类,它将容纳任意数量的不同类型的表格View单元格,而无需了解其中任何一个的内部知识。为此,我正在尝试为我的模型和我的表格View单元格使用协议(protocol)。模型的协议(protocol)将返回我应该去哪个单元格类,单元格的协议(protocol)将返回对给定模型的单元格高度应该是多少等问题的答案。但是我在使协议(protocol)工作时遇到了问题,因为对于第二个协议(protocol),我想转到单元格的类而不是它的实例。模型协议(protocol)如下:protocolJBSTableItemD

ios - Swift 向下转型和协议(protocol)变量

我有一个包含一个属性的swift协议(protocol):protocolWireframeProtocol:class{varrootViewController:UIViewController{get}}然后我有一个实现这个协议(protocol)的类:classMenuWireframe:WireframeProtocol{letrootViewController:UIViewControllerinit(){self.rootViewController=MenuViewController(nibName:"MenuViewController",bundle:nil)(

ios - Swift:协议(protocol)扩展中的静态属性可以被覆盖,但为什么呢?

我看了"Protocol-OrientedProgramminginSwift"并阅读了相关文档,但我仍然认为以下示例代码存在冲突(在Playground中尝试)。protocolX{//Theimportantpartis"static"keywordstaticvarx:String{get}}extensionX{//Here"static"againstaticvarx:String{get{return"xxx"}}}//NowI'mgoingtousetheprotocolinaclass,BUT//inclasses"static"islike"finalclass",/

ios - 在 Xcode 10.2 中使用 Swift 3 - Command/Library/Developer/Toolchains/swift-3.0-RELEASE.xctoolchain/usr/bin/swiftc 失败,退出代码为 1

我的目标是让新的Xcode10.2编译并运行我们使用Swift3和4.2(也有一些cocoapods)构建的项目,并且由于Xcode10.2随Swift5一起提供,因此在尝试运行时出现不受支持的swift错误开箱即用的项目(这是预期的):此处的解决方案是使用像this等博客中所述的旧工具链,我做到了。到目前为止一切都很好。然而,在从Swift.org安装Swift3工具链之后,编译工程会出现如下错误:Command/Library/Developer/Toolchains/swift-3.0-RELEASE.xctoolchain/usr/bin/swiftcfailedwithexi

ios - 类型与 Alamofire 不符合协议(protocol) 'URLRequestConvertible'

代码如下:enumRouter:URLRequestConvertible{//Error:Type'Five100px.Router'doesnotconformtoprotocol'URLRequestConvertible'staticletbaseURLString="https://api.500px.com/v1"staticletconsumerKey="MY_KEY"casePopularPhotos(Int)casePhotoInfo(Int,ImageSize)caseComments(Int,Int)varURLRequest:NSURLRequest{let(p

swift - 扩展 UICollectionViewDataSource 协议(protocol)以添加默认实现

我有一个相当大的应用程序,它有很多CollectionView。大多数CollectionView对数据源和流布局委托(delegate)具有相同的实现(相同的大小、边距等)。我正在尝试创建一个协议(protocol),它提供UICollectionViewDataSource和UICollectionViewDelegateFlowLayout的默认实现。这是我的代码。protocolTiledCollectionView{}extensionUICollectionViewDataSourcewhereSelf:TiledCollectionView{//defaultimplem

ios - 如何解决错误“viewController 对 swift 协议(protocol) UIScrollViewDelegate 的冗余一致性?

我是stackOverflow的新手,正在快速学习。我收到错误“在使用Stretchheaders.UIScrollViewDelegate时,viewController对协议(protocol)的冗余一致性。我在下面指定我的代码。请更正任何一个。classViewController:UITableViewController,UIScrollViewDelegate{privateletkTableHeaderHeight:CGFloat=300.0//UsingImplicitlyUnwrappedOptional,UIView!varheaderView:UIView!let

Java Development Kit (JDK) directory is not set or invalid. Please, fix it in Preferences -> Externa

JavaDevelopmentKit(JDK)directoryisnotsetorinvalid.Please,fixitinPreferences->ExternalToolsUnityEngine.GUIUtility:ProcessEvent(Int32,IntPtr)(at/Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:187) 解决方案:javaJDK目录未设置或无效(unity)?我现在正在为我的游戏创建一个密钥库(在unity中),但当我按下addkey按钮时,会弹出一个错误JavaDeve

arrays - Int类型不符合协议(protocol)顺序

我在Swift3中有以下代码:varnumbers=[1,2,1]fornumberinnumbers.count-1{//errorifnumbers[number]我正在检查索引[number]上的值是否总是高于索引[number+1]上的值。我收到一个错误:TypeIntdoesnotconformtoprotocolsequence有什么想法吗? 最佳答案 它可能很快。您可以使用此迭代。fornumberin0.. 关于arrays-Int类型不符合协议(protocol)顺序,

swift 3 : AppDelegate does not conform to protocol GIDSignInDelegate

现在我正在尝试实现Google登录。我是这样跟着的:https://developers.google.com/identity/sign-in/ios/sign-in?ver=swift但我在AppDelegate.swift中遇到错误:classAppDelegate:UIResponder,UIApplicationDelegate,GIDSignInDelegate....错误:Type'AppDelegate'doesnotconformtoprotocol'GIDSignInDelegate'帮帮我。 最佳答案 您需要在