草庐IT

self-modifying

全部标签

ios - 返回一个 Self 类型的数组

我无法找到一种在运行时在Swift中返回特定动态类类型实例数组的方法。我成功地编译并测试了这个返回类的单个实例的版本:classGeneric{classfuncall()->Self{returnself.init()}requiredinit(){}}classA:Generic{}leta=A.all()//isoftypeA这里的挑战是编译允许all函数原型(prototype)如下:classfuncall()->[Self](即返回一个实例数组,使用子类,没有任何转换)。classGeneric{classfuncall()->[Self]{return[self.init

ios - `Protocol can only be used as a generic constraint because it has Self or associated type requirements` 问题

我正在尝试生成一个符合协议(protocol)Protocoling的ViewModel,该协议(protocol)是通用的,并且具有关联的类型。有几个ViewModel符合协议(protocol),所以我正在尝试为viewModel创建一个工厂。我在Swift中遇到了以下错误:Protocol只能用作泛型约束,因为它有Self或关联类型要求示例代码:protocolProtocoling{associatedtypemodulingTypevardata:modulingType{get}}enumMyTypes{casemyNamecasemyAddress}classNameVi

ios - 关闭键盘后如何恢复 UIInputViewController self.view?

我正在开发一个具有键盘扩展的应用程序,在键盘扩展的某些用途中(例如:当我使用切换键盘按钮时)扩展正在经历viewDidDisappear并在在这种情况下,我知道我可以清理键盘,它的所有View都将被解除分配,内存也将被释放。在其他用途​​中(例如:当使用Notes应用程序并按下Done/Back按钮时)扩展将通过viewWillDisappear而不是通过viewDidDisappear,所以在这个如果我没有清洁键盘,因为它没有达到我的清洁方法,因此它没有被释放。在这一点上,我希望当我通过回到笔记返回到键盘时,例如我会收到之前的UIInputViewController以及我已经构建的

swift - 闭包中的无主 self

如果我在另一个闭包中有一个闭包,是否足以在外部闭包中使用unowned/weakonce来避免保留循环?例子:foo.aClosure({[unownedself](allowed:Bool)inifallowed{self.doStuff()self.something.anotherClosure({(s:String)->(Void)inself.doSomethingElse(s)})}}) 最佳答案 如果您没有在外部闭包中创建对self的强引用(例如通过这样做:guardletstrongSelf=selfelse{返回}

arrays - 警告 "Simultaneous accesses to parameter ' self' ..."真的适用于此吗?

我为Array写了一个扩展,允许我弹出最后一个元素并立即将它添加到另一个数组:extensionArray{mutatingfuncpopLast(tootherArray:inout[Element])->Element?{guardself.count>0else{returnnil}returnotherArray.appendAndReturn(self.popLast()!)}mutatingfuncappendAndReturn(_element:Element)->Element{self.append(element)returnelement}}playground中

objective-c - 在我的 Swift 应用程序中使用来 self 的 XPC 服务的 Objective-C 协议(protocol)

我有一个用Swift编写的应用程序,完全用Swift编写,从来没有Obj-C类,没有Obj-C文件或桥接header。为了在不影响我的应用程序权利的情况下添加一些功能,我尝试添加一个XPC服务——我在Xcode中创建了它,Xcode中的XPC服务模板仅为Obj-C。很好,我在Obj-C中编写了我的服务,但现在当我想通过NSXPCConnection调用我的服务时,我必须设置它的接口(interface),然后执行此操作我需要在我的Swift应用程序代码中引用我为XPC目标编写的Obj-C协议(protocol)。我该怎么做?我不能只将“Protocol.h”添加到我的应用程序目标,它没

swift - 协议(protocol)扩展初始化程序强制调用 self.init

我刚刚阅读了有关协议(protocol)初始化程序要求的AppleSwift4文档,并在协议(protocol)扩展中提供了默认实现。importUIKitprotocolProtocol{init()}extensionProtocol{init(){print("SDf")self.init()//Line1//Compilererroroccuredifthisisomitted//"'self.init'isn'tcalledonallpathsbeforereturningfrominitializer"}}structStructure:Protocol{init(stri

ios - MVVM:使用闭包、无主或弱 self 将 View 与 ViewModel 绑定(bind)?

我正在实现一个简单的主从应用程序,其中MasterviewController管理一个TableView,该TableView显示调用REST服务的结果。DetailviewController管理一个View,我在其中显示有关在Master中选择的项目的更多信息。常见场景。我正在尝试应用MVVM模式。在MasterviewController中,我以这种方式创建和初始化它的viewModel:lazyprivatevarviewModel:ListViewModel={returnListViewModel()}()overridefuncviewDidLoad(){super.vi

swift - 与 'Self' 不相同

我想创建一个类似Convertible的协议(protocol)并扩展NSObject子类来实现它。特别是:protocolDataConvertible{classfuncconvertFromData(data:NSData)->Self?funcdata()->NSData}我认为实现会很简单:extensionUIImage:DataConvertible{classfuncconvertFromData(data:NSData)->Self?{letimage:UIImage?=UIImage(data:data)returnimage}funcdata()->NSData{

swift - 为什么 'self.self'在swift中编译运行?

昨天我回顾了一段Swift代码,其中包括这一行:self.self.someProperty这让我很惊讶,因为self这个词被保留下来并用作对当前实例的引用。起初我用其他语言检查过这种现象,但都报错。这并不奇怪-但是,为什么它会在swift中编译和运行?其次,我在互联网上搜索了这方面的内容,但没有找到任何相关的内容...编辑我从我的支票中复制了它:self.someProperty//exactlythesameas:self.self.someProperty//oras:self.self.self.self.self.somePropertySwiftdocumentation给