草庐IT

final-class

全部标签

ios - 类继承、覆盖方法和从父类(super class)访问存储的属性

我正在学习Swift和面向对象的编程,过去一周我一直在进行“测验”。我的任务是创建一个名为Robot的Machine子类,然后覆盖父类(superclass)的move方法,这样当我输入一个特定的字符串时,机器人移动(向上-y++,向下-y--,向右-x++,向左-y--)classPoint{varx:Intvary:Intinit(x:Int,y:Int){self.x=xself.y=y}}classMachine{varlocation:Pointinit(){self.location=Point(x:0,y:0)}funcmove(direction:String){pri

c++ - 如何使用 std :vector made available to Swift classes 创建 Objective-c 类

如果我尝试在我的项目的Swift桥接header中包含一个使用std:vector的Objective-C类,我会在我的类中收到错误:#importError!'vector'filenotfound有问题的桥接文件在我的自定义框架中。如果我不在我的桥接header中包含objective-cheader,所有编译和工作正常,但当然我无法从Swift类访问该类。如何在我的Swift类中使用这个objective-c类? 最佳答案 Swift只支持桥接到Objective-C.您需要将任何CPP代码/声明移动到.mm文件中,例如:Fo

swift - 按名称获取类(class)

我可以通过名称获取类(class)吗?例如:classFoo{}classBar{}letx="Foo"classByString(x)//needtoreturnFoo我想使用元编程来减少代码维护。 最佳答案 您可以使用NSClassFromString:ifletanyObj:AnyObject.Type=NSClassFromString("MyAppName.MySwiftClassFoo"){//callFoo}else{//callBar} 关于swift-按名称获取类(cl

ios - 一个委托(delegate)两个类(class)

我正在使用带有GoogleMap自动完成ViewController的UISearchController将数据发送到我的ViewController。我有一个TabbarController,我想将数据发送到我的ViewControllerA和B两个。我已经完成了所有必要的工作,但是当用户使用UISearchController时,只有一个ViewController会收到通知。当我移动到另一个选项卡时,我尝试将每个选项卡的委托(delegate)设置为nil,例如,如果我从ViewControllerA移动到B我会将A的委托(delegate)设置为nil,然后将B的委托(dele

ios - swift 4 : Unrecognized selector sent to instance when calling a function inside another class

对于我的应用程序,我在没有Storyboard的情况下工作。出于这个原因,我试图通过将更大的函数存储在另一个类中并在需要时调用它们来使我的ViewController保持整洁。出于某种原因,当我使用#Selector调用我的函数时,出现崩溃,提示“无法识别的选择器已发送至实例”。当我将我的函数存储在与#Selector相同的ViewController中时,它工作得很好。以下代码有效ViewControllerclassViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()view.ad

swift - "final let"在 Swift 中的用途,不是多余的吗?

使用finallet不是多余的吗,因为let已经是常量,不能修改了?在哪些情况下有用? 最佳答案 这意味着变量不会被动态调度,whichcanimproveperformance.但是,如果您将类声明为final,则将该类的各个变量/成员声明为final是多余的。 关于swift-"finallet"在Swift中的用途,不是多余的吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

objective-c - objc_getClass : load swift class inheriting NSObject

我正在尝试使用objc运行时动态加载继承自NSObject的Swift类。(我试图从ObjC加载类,而不是从Swift加载类)我的Swift类:@objcpublicclassTestClass:NSObject{@objcpublicfunctestMethod()->String{return"String"}}根据Apple的文档,The@objcattributemakesyourSwiftAPIavailableinObjective-CandtheObjective-Cruntime但是objc_getClass("TestClass")的结果是(null)。我做错了什么吗

swift - @objc、@class_protocol 和 :class in swift Swift 之间的区别

有什么区别:@objc协议(protocol)名称{}@class_protocol协议(protocol)名称{}协议(protocol)名称:类{} 最佳答案 Obj-C兼容协议(protocol)(只能由类采用,可以包含可选方法,可以动态检查类是否符合该协议(protocol))。只能由类采用的协议(protocol)(不推荐使用的语法)只能被类采用的协议(protocol)(新语法) 关于swift-@objc、@class_protocol和:classinswiftSwift

Swift NSDate 扩展错误 : Mutating isn't valid on methods in classes or class-bound protocols

我正在尝试扩展NSDate但出现两个错误:extensionNSDate{//'mutating'isn'tvalidonmethodsinclassesorclass-boundprotocolsmutatingfuncaddMonth(){letcalendar=NSCalendar.currentCalendar()letcomponent=NSDateComponents()component.month=1self=calendar.dateByAddingComponents(component,toDate:self,options:[])//Cannotassignto

ios - 将在整个应用程序或类(class)中使用的颜色

我正在努力提高我的面向对象技能,但我一直在争论是否需要上课。我有一组UIColors,我在不同的ViewControllers中的整个应用程序中不断使用它们,我最初是通过将它们添加为常量全局变量开始的,如下所示...importUIKit//GlobalCOLORSletmyBlueColor=UIColor(red:62.0/255,green:174.0/255,blue:206.0/255,alpha:1.0)//moreglobalcolorshere...classViewController1{//usingmyglobalcolormyButton.layer.borde