草庐IT

swift-keypath

全部标签

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

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

swift - 如何获取并添加到 Syncano 对 user_profile 的引用

如标题所示,我有问题如何添加到syncano对user_profile的引用,如果有人可以告诉我一个提示?所以这是我的代码:funcsaveName(){letUerextra=userextra()Uerextra.name=(self.dict.objectForKey("first_name")as?String)!Uerextra.lastName=(self.dict.objectForKey("last_name")as?String)!Uerextra.avatarUrl=self.dict.objectForKey("picture")?.objectForKey("d

swift - 子查询中的 NSPredicate

我正在尝试为NSPredicate编写一个SUBQUERY。我的问题是我手头没有SUBQUERY的谓词部分的查询。有没有办法在SUBQUERY中嵌套NSPredicate?例如这是我尝试过的:letordersPredicate=NSPredicate()//somepredicatepassedin//howdoIusetheordersPredicateinsidethesubquery??letsubQueryPredicate=NSPredicate(format:"SUBQUERY(orders,$x,'%@').@count>0",ordersPredicate.predi

swift - swift 中的不可变字典初始化

这个问题在这里已经有了答案:Swiftequivalentto`[NSDictionaryinitWithObjects:forKeys:]`(5个答案)关闭6年前。我想从一个结构数组创建一个不可变的字典。有没有办法直接用语言做到这一点?我知道这可以通过临时可变字典来完成。classFoo{letkey:Int//...otherstuffinit(key:Int){self.key=key}}letlistOfFoos:[Foo]=[]vardict=[Int:Foo]()forfooinlistOfFoos{dict[foo.key]=foo}letimmutableDict=di

swift - 绑定(bind)到 NSToolbarItem 的 Cocoa 连接是否会阻止取消初始化?

尝试通过连接绑定(bind)到属性(optionSegment)来设置NSToolbarItem的选定段,这是一个NSSegmentedControl。子类化窗口ControllerclassMyWindow:NSWindowController{dynamicvaroptionSegment:Int=0overridefuncwindowDidLoad(){super.windowDidLoad()}}或者,将optionSegment属性放在NSDocument子类中并绑定(bind)到它。每项工作。问题是,使用此绑定(bind),或看似与NSToolbarItem的任何绑定(bi

swift - 如何在协议(protocol)扩展中设置委托(delegate)

我有多个显示相同类型单元格的ViewController。我想在这样的协议(protocol)扩展中设置委托(delegate):classProductsViewController:UIViewController,ProductShowcase{//otherproperties@IBOutletweakvarproductCollectionView:UICollectionView!vardataSource:DataSource!overridefuncviewDidLoad(){super.viewDidLoad()setupDataSource()setupCollec

swift - 闭包返回类型语法

我在一个导致一些困惑的结构中有以下闭包。varresponse:(result:Result)->VoidstructRegisterRequest:Requestable{letuserInfo:[String:AnyObject]varresponse:(result:Result)->Void}现在当我尝试实现它时,我有以下内容:letregister=RegisterRequest(userInfo:userInfo,response:{(result)in})如果闭包语法是{(params)->returnTypeinstatements}为什么swift自动将我的实现更正为

swift - 多个协议(protocol)扩展中的功能不明确?

我有多个具有相同函数名称的协议(protocol)。某些协议(protocol)具有关联类型,我无法像在非通用协议(protocol)中那样弄清楚如何调用这些函数。我收到错误:Protocol'MyProtocol1'canonlybeusedasagenericcontraintbecauseithasSelforassociatedtyperequirements这是我正在尝试做的事情:protocolServiceable{associatedtypeDataTypefuncget(handler:([DataType]->Void)?)}structPostService:Se

ios - 从 Firebase Swift 检索字典

我试图在不同的标签中对字典的每个项目进行排序(在我的例子中:在firebase中投票指定“votelabel”,在“textlabel”中输入文本......),我试图这样做但我真的有货。我认为我的问题是因为每个帖子都有一个新key而且我不知道如何直接转到childrenvarposts:[String:AnyObject]=[String:AnyObject]()@IBActionfuncsave(sender:AnyObject){lettitre=Titre.textletsoustitre=SousTitre.textlettext=Text.textletnewPosts:D

swift - 是否可以在 Swift 中使用自定义运算符定义 [Int] * Int?

我想定义一个新的运算符并将数组的每个元素相乘[Int]通过Int,例如[3,2,10]*10.但是,因为Int既不是协议(protocol)也不是类(它是结构),我首先定义了以下内容:protocolNumeric{}extensionInt:Numeric{}extensionDouble:Numeric{}extensionFloat:Numeric{}然后,我尝试定义运算符,例如:func*(left:[T],right:T)->[T]{varnewArray:[T]=[]foriinleft{newArray.append(i*right)}returnnewArray}然而,