草庐IT

UIApplicationDelegate_Protocol

全部标签

swift - AnyObject 类型泛型约束的引用类型协议(protocol)

我有一个通用结构声明如下:structWeakReference{weakvarvalue:T?init(value:T?){self.value=value}}还有一个协议(protocol):protocolSomeProtocol:class{}但我无法声明类型为WeakReference的变量,编译器提示说'WeakReference'requiresthatSomeProtocolbeaclasstype有趣的是,在Swift中,class是AnyObject的类型别名。我实际上想保存一个WeakReference的数组因为数组包含强引用。Class-onlygenericc

xcode - Swift 通用类类型既是子类又符合协议(protocol)

我正在尝试用Swift编写一个泛型类,它的泛型类型既继承自一个类又符合一个协议(protocol)。但是,以下代码会导致编译器崩溃并出现段错误:11。protocolProtocol{varprotocolProperty:Any?{get}}classClass{varclassProperty:Any?}classGenericClass{vargenericProperty:T?funcfoo(){letclassProperty:Any?=genericProperty!.classProperty//ThisistheculpritletprotocolProperty:An

objective-c - 在 @objc 协议(protocol)中用闭包定义方法

我有以下协议(protocol)定义:@objcprotocolPersonDataStore{funcfindPersonWithId(remoteId:String,completionBlock:((Person)->Void)!)//...}我得到的错误是第二个参数不能在Objective-C中表示。我研究了block/闭包主题,但我很难理解它,因为它在概念上是如此不同。这只是语法问题,还是真的不可能在Swift中定义带有闭包的Objective-C协议(protocol)? 最佳答案 我认为您的问题是您的类Person不是

swift - 如何在 Swift 的泛型扩展中使用带有可选类方法的协议(protocol)?

我正在尝试使用类方法对现有类使用扩展,例如:@objcpublicprotocolMyProtocol{optionalclassfuncfoo()->Int}我在扩展中使用这个协议(protocol),像这样:extensionMyClass{publicfuncbar(){...letx:Int=T.self.foo!()//ifIdonotuse"self"or"!"here,Iwillhaveacompilererror...}这应该可行,但是当我构建它时,Xcode显示“Command/Applications/Xcode.app/Contents/Developer/Too

ios - 类型 'X' 不符合协议(protocol) 'ResponseObjectSerializable'

我尝试使用Alamofire进行自定义响应序列化我按照README中的内容创建协议(protocol)和扩展@objcpublicprotocolResponseObjectSerializable{init?(response:NSHTTPURLResponse,representation:AnyObject)}extensionAlamofire.Request{publicfuncresponseObject(completionHandler:(NSURLRequest,NSHTTPURLResponse?,T?,NSError?)->Void)->Self{letseria

ios - 实现 swift equatable 协议(protocol)给我错误的访问错误。为什么?

这是我的代码。似乎当我将UIColor子类化以使其相等时,我得到了一个内存错误。这是为什么?classMyColor:UIColor,Equatable{varname:Stringinit(name:String,r:CGFloat,g:CGFloat,b:CGFloat,a:CGFloat=1.0){self.name=namesuper.init(red:r,green:g,blue:b,alpha:a)}requiredinit(coderaDecoder:NSCoder){fatalError("init(coder:)hasnotbeenimplemented")}}fun

swift - Swift 协议(protocol)元类型的运行时比较

我正在尝试将Swift协议(protocol)与实现动态匹配,但我在尝试在运行时执行协议(protocol)比较时遇到了阻碍-似乎协议(protocol)在运行时可能并不存在?我尝试过的一些例子:varprotocols[Any]funcfindProtocol(aProtocol:Any)->Bool{//Nope,protocolsdon'timplementequatableaProtocol==protocols[0]//Doesn'twork,unsafeAddressOf()onlyappliestoAnyObjectsletpointer:UnsafePointer=un

swift - 协议(protocol)扩展中的方法永远不会被调用,加上书中的错误

在《SwiftApprenticeBeginningprogrammingwithSwift2.2》一书的第261~262页有一段关于协议(protocol)扩展的示例代码,如下所示值gamesPlayed在协议(protocol)TeamRecord、协议(protocol)扩展和结构BaseballRecord中定义protocolTeamRecord{varwins:Int{get}varlosses:Int{get}vargamesPlayed:Int{get}}extensionTeamRecord{//gamesPlay#1vargamesPlayed:Int{return

swift - 如何使用 Swift 协议(protocol)设置 iTunes ScriptingBridge 的属性

我想使用iTunesScriptingBridge框架在Swift2.3/3中设置轨道的评级。我的SwiftiTunesheader协议(protocol)定义如下(完整headerhere):@objcprotocoliTunesTrack:iTunesItem{@objcoptionalvaralbum:NSString{getset}@objcoptionalvaralbumArtist:NSString{getset}@objcoptionalvarrating:Int{getset}}extensionSBObject:iTunesTrack{}但是当我尝试设置评级时:var

objective-c - 我怎么不遵守这个协议(protocol)?

有什么我不明白的吗?协议(protocol):publicprotocolSLKTypingIndicatorProtocol:NSObjectProtocol{/**ReturnsYESiftheindicatorisvisible.SLKTextViewControllerdependsonthispropertyinternally,byobservingitsvaluechangestoupdatethetypingindicatorview'sconstraintsautomatically.Youcansimply@synthesizethispropertytomakei