草庐IT

swift - 错误 : cannot convert value of type '() -> ()' to closure result type 'String' using Swift + PromiseKit

我不熟悉Swift中的promise,并使用PromiseKit尝试在Playground上创建一个非常简单的响应并尝试使用它。我有以下代码:importUIKitimportPromiseKitfuncfoo(_error:Bool)->Promise{returnPromise{fulfill,rejectinif(!error){fulfill("foo")}else{reject(Error(domain:"",code:1,userInfo:nil))}}}foo(true).then{response->Stringin{print(response)}}但是我得到以下错误

arrays - 将任何对象作为参数的 Swift 数组的扩展函数

我正在尝试在Swift中为Array实现一个简单的扩展函数,它将“切换”元素——如果该值已经在Array中,则应将其删除,如果没有这样的值,则应将其添加到数组。所以我认为它应该是这样的:extensionArray{mutatingfunctoggle(value:Element){ifletindex=indexOf(value){removeAtIndex(index)}else{append(value)}}}此代码不会构建说:“无法使用类型为‘(Element)’的参数列表调用‘indexOf’”。我想,我们应该以某种方式告诉编译器“值”参数应该符合Equatable协议(pr

ios - Swift 中任何协议(protocol)的通用约束

是否可以在Swift中限制泛型类型接受协议(protocol)?我已经实现了包含弱对象列表的包装器,我需要将其扩展到协议(protocol)。protocolIncrementable:class{funcinc()}classCounter:Incrementable{varn:Int=0funcinc(){n+=1}}structWeak{weakvarvalue:T?init(value:T?){self.value=value}}varcnt:Counter?=Counter()letcounters:[Weak]=[Weak(value:cnt),Weak(value:Cou

swift - 如何在 Swift 中获取磁盘标识符

我想找到附加驱动器的标识符-如终端命令diskutillist所示#:TYPENAMESIZEIDENTIFIER0:GUID_partition_scheme*1.0TBdisk01:EFIEFI209.7MBdisk0s12:Apple_HFSSSHDOSX511.7GBdisk0s23:Apple_BootRecoveryHD650.0MBdisk0s34:Apple_HFSSSHDOSXNEW511.0GBdisk0s45:Apple_BootRecoveryHD650.0MBdisk0s5到目前为止,我已经设法编写了这段代码:varvolume_stack=[NSURL]()

ios - alamofire post 方法中的 response.result.value 为 nil

letparametersDictionary=["email":"name@gmail.com","password":"password"]Alamofire.request("http://nanosoftech.com/store/user_check",method:.post,parameters:(parametersDictionaryasNSDictionary)as?Parameters,encoding:JSONEncoding.default,headers:nil).responseJSON{responseinprint("response:",respon

IOS FoodTracker 教程 : Value of tuple type '()' has no member 'path'

我正在完成IOSSwift教程“FoodTracker”,但是有一个错误我可以找到解决方案,但我不明白哪里出了问题以及如何解决它:错误:Valueoftupletype'()'hasnomember'path'此错误在以下代码中针对变量“Meal.ArchiveUrl.path”显示。我的代码,在MealtableViewController(相当于IOS教程):privatefuncsaveMeals(){letisSuccessfulSave=NSKeyedArchiver.archiveRootObject(meals,toFile:Meal.ArchiveUrl.path)if

swift - 如果传递很多,Swift 中的结构会导致内存问题吗?

在Swift中,结构是值类型。如果我有一个包含大量数据(假设)的结构,并将该结构传递给许多不同的函数,那么每次都会复制该结构吗?如果我同时调用它,那么内存消耗会很高吗? 最佳答案 理论上,如果您传递非常大的struct导致它们被复制,则可能存在内存问题。一些注意事项/观察结果:在实践中,这很少成为问题,因为我们经常使用原生的“可扩展”Swift属性,例如String、Array、Set、Dictionary、Data等,它们具有“写入时复制”(COW)行为。这意味着如果您复制struct,则不一定复制整个对象,而是它们在内部采用类似

ios - Obj-C 框架返回 nil,并使我的 Swift 代码崩溃并显示 'fatal error: unexpectedly found nil while unwrapping an Optional value'

我正在使用用Obj-C编写的第三方框架,它有一个功能:-(NSError*)generateModelForm如果此方法成功,它将返回nil。如果它不返回nil,它将返回一个错误,您可以检查该错误以进行调试。现在,当我使用桥接头在我的Swift文件中调用此函数并执行所有必需的操作时,它总是在第一行崩溃并显示“fatalerror:在展开可选值时意外发现nil”我的Swift代码:ifleterror=object.generateModelForm(){println("Error:\(error)")}else{println("Successfullygeneratedmodelf

ios - 如何在 swift 中使用 Key Value Observer?

为了我的目的,我设置了AVFoundation来拍照,我想确保在保存imagedata之前完成曝光和白平衡(adjustingExposure,adjustingWhiteBalance)的调整。否则第一张照片会显得很暗。如何设置键值观察器以在值更改后运行代码?以及如何/在哪里是启动它的最佳地点? 最佳答案 在你得到图像后用didSet创建一个var并且那个var保存图像例如varimage:UIImage{//orwhattypeyourimageis,MabyNSData,butI'mnotsuredidSet{//adjust

ios - UIButton 中的 Swift 3D Touch Force Value

如何测量应用于UIButton功能的3D触摸力?我想用它来快速更改AVAudioPlayer属性的音量。 最佳答案 您可以为所有UIView类\子类使用识别3D触摸的东西自定义类classcustomButton:UIButton{overridefunctouchesMoved(touches:Set,withEventevent:UIEvent?){fortouchintouches{print("%Touchpressure:\(touch.force/touch.maximumPossibleForce)");}}overr