草庐IT

Controllers-Swift

全部标签

Swift歧义重载+运算符

它可能是如此简单,但出于某种原因,swift不喜欢我对+运算符的实现...我有一个简单的数字协议(protocol):protocolNumber:CustomStringConvertible{vardoubleValue:Double{get}}同样的简单实现:structSimpleNumber:Number{letdoubleValue:Doubleletdescription:Stringinit(_double:Double){doubleValue=doubledescription="\(double)"}}以及运算符重载的扩展:extensionNumber{stat

ios - 如何让 UIButton 在 Swift Playground 中执行操作

我正在尝试在SwiftPlayground应用程序中使用UIKit。我可以让标签和文本字段正常工作,但我不知道如何让UIButton在被触摸时执行操作。importPlaygroundSupportimportUIKitclassMyView:UIView{//Methodtobecalledfuncprintname(){print("clicked")}funcbuttonPressed(sender:UIButton){print("Here")}}funcprintname2(){print("buttonpressed")}letview=MyView()Playground

swift 3 : issue with AVVideoCompositionCoreAnimationTool to add watermark on video

以下代码可以完美地使用AVVideoCompositionCoreAnimationTool向视频添加Logo和文本。然后Swift3来了!现在有时视频会显示带有Logo和文本,有时视频在导出时不显示。letvideoComposition:AVMutableVideoComposition=AVMutableVideoComposition()videoComposition.frameDuration=CMTimeMake(1,60)videoComposition.renderSize=CGSize(width:clipVideoTrack.naturalSize.height,

ios - URLForResource() 总是返回 nil,swift 2.3,iOS10

我正在尝试测试一些东西,并且需要访问与测试类位于同一目录中的文件(实际上在子目录中)。我正在尝试这样做:letfileURL=testBundle.URLForResource("MasterCalendar",withExtension:"ics",subdirectory:"Calendars")我也这样试过:letfileURL=testBundle.URLForResource("MasterCalendar",withExtension:"ics")我的类(class)叫做ParserTest。我试图访问的文件位于如下所示:我试图获取文件路径:ifletfilePath=NS

Swift 不返回 URLResourceKey.localizedNameKey 的本地化版本

我在意大利,下面的代码应该返回Preview.app的本地化名称,但它返回的是Preview.appleturl=URL(fileURLWithPath:"/Applications/Preview.app")letv=try!url.resourceValues(forKeys:[.localizedNameKey])print(v.localizedName!)我已经检查了返回的语言,它是正确的letlanguage=NSLocale.preferredLanguages[0]print(language)Objective-C版本工作正常并返回Anteprima/Applicat

swift - 快速扩展通用对象数组

我想在swift中写一个泛型数组的扩展。这就是我尝试这样做的方式:classObserver{private(set)weakvarobserver:AnyObject?privatevarlistener:(_newValue:Type)->()init(observer:AnyObject,listener:@escaping(_newValue:Type)->()){self.observer=observerself.listener=listener}}extensionCollectionwhereIterator.Element==Observer{funcfoo(val

swift 如何修复 TableView 的 segue 准备

overridefuncprepareForSegue(segue:UIStoryboardSegue,sender:AnyObject?){ifsegue.identifier=="toChat2"{guardletnavController=segue.destinationViewControlleras?UINavigationController,letchatController=navController.viewControllers.firstas?ChatViewControllerelse{return}letindexPaths=self.tableView!.

ios - 对象层次结构导致 Swift 内存泄漏

我能够提炼出我编写的应用程序中出现的问题,并在一个简单的示例中重现了它。给定这些类:classThing{varname:String=""varprice:Double=0.0varchanged:Double=0.0varpercentChanged:Double=0.0}classTestUIViewController:UIViewController{}classViewController:TestUIViewController{varthing:Thing?@IBActionfuncclicked(_sender:AnyObject){self.thing=Thing(

Swift 3 - 类名/类型查找

我的应用使用绘图类的数百个子类。(这些子类是从艺术文件自动生成的。)理想情况下,我想加载一些子类的名称,检查这些子类是否实际可用,如果是,则实例化它们。但是,似乎在纯Swift中缺少NSClassFromString风格的功能意味着我不得不提前向编译器声明我所有的类名。例如通过一个非常冗长乏味的switch语句来上课:funcdrawingObjectFromClassName(_className:String)->SomeDrawingProtocol?{switchclassName{case"foo":returnfoo()case"bar":returnbar()//etc.

ios - 是否可以在 swift 项目中禁用方法调配?

我有一个带有第3方框架的非常大的项目,我想禁用方法调配以确保第3方框架不会破坏默认的预期行为。是否可以?项目设置中是否有一些标志? 最佳答案 虽然如果您避免从NSObject子类化您将是安全的,但没有选项可以禁用它。如果你想防止AnyLibrary困惑,你可以覆盖它的核心方法,即publicfuncclass_addMethod(_cls:Swift.AnyClass!,_name:Selector!,_imp:IMP!,_types:UnsafePointer!)->Bool和publicfuncmethod_exchangeIm