草庐IT

Swift-Mailer

全部标签

swift - Swift 的广义类型约束

作为练习,我尝试在Swift中扩展Array以添加sum()成员函数。这应该是类型安全的,我希望调用sum()仅当数组包含可以相加的元素时才进行编译。我尝试了一些这样的变体:extensionArray{funcsum()->Int{varacc=0foreleminself{acc+=elemasInt}returnacc}}想法是说,“好的,这是一个泛型函数,泛型类型必须类似于Int,并且还必须与T相同,数组元素的类型”。但是编译器提示说:“相同类型的要求使泛型参数U和T等价”。没错,它们应该是,带有附加约束T:_IntegerArithmeticType。为什么编译器不允许我这样

xcode - Swift 中的引用类型 - 对函数/闭包的引用

我注意到在Swift中,当我创建一个带有返回值returnValue的originalFunction()并创建一个新函数时letreferenceA=originalFunction(),这将发生:因为referenceA是对originalFunction()的引用,当我执行letreferenceB=referenceA时,referenceB和referenceA将共享returnValue。但是当我让referenceC=originalFunction()时,在这种情况下我想referenceC和referenceA也应该共享returnValue因为它们都引用origin

swift - 如何在 Swift 中偏移 Range<T>?

假设我们有一个任意的Range我们想用startIndex创建一个新范围和endIndex进步了50个单位。我的第一个想法是这样做:letstartIndex=advance(range.startIndex,50)letendIndex=advance(range.endIndex,50)varnewRange=startIndex..但这给出了“fatalerror:无法增加endIndex”。(好吧,它与Range一起使用。我还没有尝试过使用其他通用参数。)我已经尝试了很多这种排列,包括分配range.startIndex和range.endIndex到新变量等。没有任何效果。我

swift - 使用附加值快速初始化属性

这个问题在这里已经有了答案:DoesSwifthaveanimplicitObjectInitializer,likeinC#?(4个答案)关闭7年前。是否可以在swift中使用附加值/属性初始化属性,例如一个UIButton,UILabel,...?我很想拥有这样的东西:letmyLabel=UILabel(){font=UIFont(...)textColor=......}

Swift - 如何将单例设置为零

我正在快速编写一个应用程序,并使用单例在整个应用程序中共享一个类对象User。我希望能够在用户注销时将此单例设置为“nil”,以便当他们重新登录时旧属性不再存在(即名称、用户名等)。我希望有一种简单的方法可以将单例设置回nil,而不必将每个属性都设置为nil。这是我在应用程序中用作User.activeUser的用户类:classUser:NSObject{classvaractiveUser:User?{structStatic{staticletinstance:User=User()}returnStatic.instance}}我怎样才能改变它,这样下面的代码就不会给我一个警告

swift - WatchKit App 中的多个 Storyboard

有没有办法在WatchKit应用程序中使用多个Storyboard?据我所知,你只能使用一个,这使得在大型团队中工作时变得困难。UIStoryboard上可用的API如下:funcinstantiateInitialViewController()->AnyObjectfuncinstantiateViewControllerWithIdentifier(_identifier:String)->AnyObject!两者都不支持WatchKit对象。此外,用于重新加载不同界面Controller的WKInterfaceController类方法仅采用标识符数组。classfuncrel

swift - $T0 在 Swift 中是什么意思?

在Swift中编程时,有时我会看到包含$T0、$T1、$T2等的错误消息。与关闭有关。这段代码工作正常:lettest={(argument:Int)inprintln("Argumentis\(argument)")}test(42)Xcode的自动完成功能告诉我test的类型是(Int)->(),因此返回类型似乎是推断出来的。但是如果我在闭包中添加一个return语句:lettest={(argument:Int)inprintln("Argumentis\(argument)")return}test(42)我收到一条错误消息:error:cannotconverttheexpr

swift - 快速纠正许多情况下的 NSNumberFormatter

我在swift中遇到NSNumberFormatter和SignificantDigits的一些问题。vartest1:Float=0.2345vartest2:Float=1234.4567vartest3:Float=2.234234我想在3个不同的标签(label1、label2、label3)中显示这些值。我正在寻找NSNumberFormatter所以我的变量可能看起来像:0.241234.462.23所以它们在“.”之后都有2位数字。如果第一个数字是0,它是可见的现在我的代码是varformatter=NSNumberFormatter()formatter.maximum

swift - 作为的意思!在 Swift 1.2 - Xcode 6.3 beta 中

我正在尝试XCode6.3beta和Swift1.2这里的as!是什么意思?overridefuncprepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?){ifsegue.identifier==signUpViewId{varsignUpView=segue.destinationViewControlleras!SignUpViewController}} 最佳答案 这意味着,如果segue.destinationViewController是一个SignUpView

swift - cloudkit 输入用户 ID 作为新记录的引用(在代码中)

我正在设置一个用户可以在其中创建记录的应用程序。假设他/她是聊天室的所有者。因此聊天室记录中有一个名为“admin”的属性。此属性采用作为所有者ID的引用。这是我尝试过的:CKContainer.defaultContainer().fetchUserRecordIDWithCompletionHandler({userRecordID,erroriniferror!=nil{println("caca")}else{println("gettinclose")letUserRecordIDToStore=NSKeyedArchiver.archivedDataWithRootObje