草庐IT

Protocols

全部标签

swift - swift hashable 协议(protocol)哈希函数是否需要返回唯一值?

我正在学习iOSswift俄罗斯方block教程*,并已完成并开始工作。但我对一个特定方面感到困惑-Hashable协议(protocol)。函数:classBlock:Hashable,Printable{[...]varhashValue:Int{returnself.column^self.row}行为0..9,列为0..20。注释说这个函数“我们返回我们的行和列属性的异或,为每个block生成一个唯一的整数。”。但我的理解是0^1将与1^0相同,等等......我想知道如果Hash函数不是这样唯一的,或者碰撞通常是可以的,这是否是一个问题?正如我所说,该应用程序似乎运行良好..

ios - 从 Swift 调用 Objective-C 委托(delegate)的方法

我正在编写一些基于我们的objective-c应用程序功能的Swift类。我有一个带有符合协议(protocol)的委托(delegate)的objective-c类。我正在尝试从Swift类内部调用该委托(delegate)的方法,我将其简化为这样。FredTestProtocol.h:@protocolFredTestProtocol-(void)dumbMethod;@endFredTestClass.h:#import#import"FredTestProtocol.h"@interfaceFredTestClass:NSObject@property(nonatomic,we

swift - 我的协议(protocol)定义在另一个 Swift 文件中不可见

我有两个文件:DBStartViewController.swift和DBFindViewController.swift当我定义我的协议(protocol)时:protocolDBViewAnimationTransitioning{varviewForAnimation:UIView?{getset}}在DBStartViewController.swift中,它在我的DBFindViewController.swift中不可见。我得到一个错误:UseofundeclaredtypeDBViewAnimationTransitioning.但是当我将声明移动到DBFindViewC

ios - Swift - 通过委托(delegate)将 UIImage 传递给 UIImageView

我没有想法,我不知道如何解决这个问题。任何帮助将不胜感激。我有以下情况:MainViewController指向嵌入在NavController中的CollectionViewCollectionView指向一个DetailViewControllerDetailViewController显示在CollectionView中选择的完整图片,并有一个将此图像传递给MainViewController的按钮。为此使用协议(protocol)和委托(delegate)此图像现在应该显示在MainViewController的UIImageView中委托(delegate)工作。我的Main

Swift 泛型和协议(protocol)不适用于 UIKit [可能的错误]

TL;DR->滚动到底部在尝试使用Swift面向协议(protocol)的编程中标记Apple时,我在尝试实现类之间的委托(delegate)模式时偶然发现了以下问题。我将从这个例子开始:protocolPhotoHandlerParent{}classUIViewController{}classMyViewController:UIViewController,PhotoHandlerParent{}classPhotoHandler:NSObject,UIImagePickerControllerDelegate,UINavigationControllerDelegate{we

swift - 扩展基础类以符合 Swift 协议(protocol)

我正在尝试定义一个协议(protocol),我想为其添加对几个基础类以及我自己的一些自定义类型的一致性。我首先尝试使用协议(protocol)中的便利初始值设定项来执行此操作,但是doesnotseempossible.我读了linkedthread在Apple开发者论坛上,他们讨论了使用返回类型Self的类方法,但我无法弄清楚如何去做。typealiasJSONObject=AnyObjectprotocolJSONParseable{staticfuncfromJSONObject(jsonObject:JSONObject)throws->Self}extensionNSURL:

swift delegation - 什么时候使用弱引用,为什么 'delegate' 是 nil?

这是我的代码:protocolDelegate:NSObjectProtocol{}classA:NSObject{weakvardelegate:Delegate!overrideinit(){super.init()}funcstart(){//synchronous-------printA:falseprint("A:",delegate==nil)//asynchronous-------printB:trueWhyis'true'?Howcandothatnotbereleased?lettime:NSTimeInterval=1letdelay=dispatch_time

arrays - swift 和 NSCoding : Encoding an array of objects conforming to a class-only protocol

我有一个类StandardObject,它符合Object协议(protocol)。另一个类ObjectManager有一个名为objects的属性,它是一个包含Object实例的数组。StandardObject和ObjectManager都是NSObject的子类并且符合NSCoding。当我尝试在encodeWithCoder:中对ObjectManager的objects属性进行编码时,我收到一个错误:cannotconvertvalueoftype'[Object]'toexpectedargumenttype'AnyObject?'这是我的代码:对象管理器:classObj

objective-c - Swift 无法将符合协议(protocol)的类作为函数参数传递给驻留在 Objective-C 文件中的函数

大家好,我是Swift的新手,但对Objective-C很有经验。我有一个项目同时使用Swift和Objective-C文件(桥接和所有)。假设我有一个名为“fooProtocol”的协议(protocol)和一个实现它的类“foo”。我正在尝试将Swift文件中类型为“fooProtocol”的对象作为参数传递给Objective-C文件中的函数。这是“tester”类中的Objective-C函数:-(void)setWithFoo:(id*)_foo{}这是Swift代码:varmyObject:fooProtocol=foo.init()varobjcObject:tester

ios - Swift 协议(protocol)中的可选方法和重载

有没有办法覆盖Swift协议(protocol)中的可选方法?protocolProtocol{funcrequiredMethod()}extensionProtocol{funcoptionalMethod(){//dostuff}}classA:Protocol{funcrequiredMethod(){print("implementationinAclass")}}classB:A{funcoptionalMethod(){//为什么在UIKit中有类似的例子?protocolUITableViewDelegate:NSObjectProtocol,UIScrollViewD