所以我想知道类函数和“普通实例函数”。我想知道类函数的目的是什么。只是为了可以使用某些功能而无需先将类分配给变量,还是它有其他目的?classDog{funcbark()->String{return"WoefWoef!"}classfuncbark_class()->String{return"WoefWoef!"}}vardog=Dog()dog.bark()//WoefWoef!Dog.bark()//ThrowsanderrorDog.bark_class()//WoefWoef!>Apparentlyisdoens'tneedaninitiatedobject
据我所知,Swift函数默认有未命名的参数,但Swift方法没有(第一个参数除外)。例如,给定以下定义:funcfoo(a:Int,b:Int)->Int{returna+b}classMyClass{funcbar(a:Int,b:Int)->Int{returna+b}}我必须使用未命名的参数调用foo:foo(10,20)//finefoo(a:10,20)//errorfoo(10,b:20)//errorfoo(a:10,b:20)//error我必须调用bar,第一个参数未命名,第二个参数命名为:MyClass().bar(10,b:20)//fineMyClass().b
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion在Swift中,我正在尝试弄清楚我是否应该这样做if(true){//stuff}else{//otherstuff}或者if(true){//stuff}else{//otherstuff}我知道从技术上讲这没有什么区别,但我想知道行业标准是什么,以及为什么标准是……标准。
我已经开始编写一个用户类,它有一个方法来计算用户与对象的距离。它看起来像这样:classUser{varsearchRadius=Int()varfavorites:[String]=[]varphoto=String()varcurrentLocation=CLLocation()funccalculateDistance(location:CLLocation){letdistance=self.currentLocation.distanceFromLocation(location)*0.000621371returndistance//Errorreturnsonthisli
我正在重构一个Obj-c类,其中在removeObserver:周围有一个@try/@catchblock。在swift中做同样的事情会触发警告,因为removeObserver可能会失败(当没有观察者时)但它不会抛出任何错误。知道如何实现相同的行为吗?编辑:我的代码:try{self.removeObserver(self,forKeyPath:"LineDisplayChanged")} 最佳答案 您调用的funcremoveObserver(_anObserver:NSObject,forKeyPathkeyPath:Stri
我正在学习Swift语言,但我无法将可选的回调参数传递给函数:funcdismiss(completion:()->Void){if(completion){returnself.dismissViewControllerAnimated(true,completion:completion)}self.dismissModalViewControllerAnimated(true)}这向我显示了一个错误-Type()->Voiddoesnotconformtoprotocol'LogicValue'有什么建议吗? 最佳答案 Swi
我一直认为函数和方法是相同的,直到我通过“Swift编程语言”电子书学习Swift。我发现我无法使用greet("John","Tuesday")调用我在类中声明的函数,如下面屏幕截图中的电子书所示:根据此屏幕截图,我收到一条错误消息,指出“调用中缺少参数标签‘day:’”:这是代码:-importFoundationimportUIKitclassViewController2:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()//vardailyStatement=greet("John","Tuesday"
在ObjectiveC中,您可以记录正在调用的方法:NSLog(@"%s",__PRETTY_FUNCTION__)通常这是从日志记录宏中使用的。尽管Swift不支持宏(我认为),但我仍然希望使用包含被调用函数名称的通用日志语句。这在Swift中可能吗?更新:我现在使用这个全局函数进行日志记录,可以在这里找到:https://github.com/evermeer/Stuff#print您可以使用以下方式安装:pod'Stuff/Print'代码如下:publicclassStuff{publicenumlogLevel:Int{caseinfo=1casedebug=2casewar
我正在尝试弄清楚如何在Swift中声明一个仅限于局部作用域的静态变量。在C中,这可能看起来像这样:intfoo(){staticinttimesCalled=0;++timesCalled;returntimesCalled;}在Objective-C中,基本相同:-(NSInteger)foo{staticNSIntegertimesCalled=0;++timesCalled;returntimesCalled;}但我似乎无法在Swift中做任何类似的事情。我尝试通过以下方式声明变量:staticvartimesCalledA=0varstatictimesCalledB=0var
如何从swift中的函数返回3个相同类型(Int)的独立数据值?我正在尝试返回一天中的时间,我需要将小时、分钟和秒作为单独的整数返回,但是从同一个函数一次返回,这可能吗?我想我只是不明白返回多个值的语法。这是我正在使用的代码,我在处理最后一行(返回)时遇到了问题。如有任何帮助,我们将不胜感激!funcgetTime()->Int{letdate=NSDate()letcalendar=NSCalendar.currentCalendar()letcomponents=calendar.components(.CalendarUnitHour|.CalendarUnitMinute|.C