草庐IT

ios - Swift 3 - 如何处理 URLRequest/URLSession 错误?

我想知道你们在应用中使用URLRequest时如何处理错误。您如何通知您的用户发生了错误?你甚至会通知你的用户吗?您是否再次尝试重新加载URLRequest?您是否告诉您的用户关闭当前屏幕并使用警告框再次打开它?我不知道。一旦出现错误,您的应用就会停止。那么,当发生这种情况并且遇到网络问题、Json数据错误时,您会怎么做?当您收到“网络连接错误(服务器已关闭)”或URLSession返回错误但互联网连接正常时,您会怎么做?请看下面的代码,帮我弄清楚发生错误时需要做什么。leturl=URL(string:"http://example/jsonFile.php")varrequest=

swift - 通过 SKAction 但不是通过 AVAudioPlayer 播放声音

我在游戏中播放声音时遇到了一个令人烦恼的问题,但似乎无法通过AVAudioPlayer获得任何输出。最初这是作为一个类设置的,但是当它不起作用时,我尝试对声音输出进行硬编码,只是为了检查那里是否存在问题。它仍然没有用,我尝试了几个不同的文件来排除有问题的音频文件或格式。正在检索URL,但audioPlayer似乎只是没有输出声音。我已经阅读了一些关于类似问题的帖子并摆弄了系统声音设置,但没有任何区别。有人建议模拟器在某些情况下无法输出声音,但我不认为这是这种情况。letmyFile=NSURL(fileURLWithPath:NSBundle.mainBundle().pathForR

来自 Segue 的 Swift dismissViewController - macOS

我有一个辅助ViewController,它通过Storyboardsegue以编程方式出现:funcactioncall(){performSegue(withIdentifier:"showIgnoreVC",sender:self)})此函数是主ViewController的一部分,通过AppDelegate的NSNotification调用,AppDelegate又由菜单项点击触发。但是,即使segue连接到主ViewController,以下代码也不会关闭辅助View:@IBActionfuncdismiss(_sender:Any){print("Hello?Gonnacl

ios - UIView 方法 swizzling swift 3

我正在尝试根据答案Howtoimplementmethodswizzlingswift3.0?在swift3中实现方法调配这是我的代码://MARK:-Swizzlingprivateletswizzling:(UIView.Type)->()={viewinletoriginalSelector=#selector(view.awakeFromNib)letswizzledSelector=#selector(view.swizzled_localization_awakeFromNib)letoriginalMethod=class_getInstanceMethod(view,o

swift - 解析 mLabs 和 Heroku 的迁移错误

我至少在一年前将我的解析数据库迁移到了Mlabs。从那以后我就一直在开发这个应用程序,解析仪表板说我已经成功迁移了。Mlab和Parse都收到了对其数据库的更新。然而,在最近一两周内,该应用不再通过登录页面。没有调整代码是服务器问题。这是Xcode日志中打印的错误:UserInfo={code=100,originalError=ErrorDomain=NSURLErrorDomainCode=-1011"(null)",temporary=0,error=Theoperationcouldn’tbecompleted.(NSURLErrorDomainerror-1011.),NSL

swift - 在 Swift 中引用自己的类型?

在类中,声明闭包参数时如何引用类本身?在下面的例子中,用什么类型来代替Self,这样在构造Foo时,闭包参数也变成了Foo并且AnotherFoo是否类似?classFooBase{init(completionHandler:(_myself:Self)){//...self.completionHandler=completionHandler}varcompletionHandler:((_:Self)->Void)?funcstrategyMethod(){...}}classFoo:FooBase{//...overridefuncstrategyMethod(){//dos

Swift 3 - 背景循环无法正常工作

我正在尝试制作一款类似FlappyBird的游戏,并且必须让我的背景无限循环。我在网上找到了一些教程,但它对我不起作用,我也不知道为什么。到目前为止,这是我的代码varBackground=SKSpriteNode()vartxtBG=SKTexture(imageNamed:"Background")vartxtLand=SKTexture(imageNamed:"Ground")varGround=SKSpriteNode()varmoving:SKNode!//CenaoverridefuncdidMove(toview:SKView){scene?.anchorPoint=CG

swift - 在 Swift 3 中从数据初始化结构

我有一个名为MyContiguousStruct的Struct,其内存布局没有填充。structMyContiguousStruct{letivar1:UInt8letivar2:UInt8letivar3:UInt16letivar4:UInt16}我的初始化器像这样(很棒)工作:init?(data:Data){guarddata.count==MemoryLayout.sizeelse{returnnil}self=data.withUnsafeBytes{$0.pointee}}我决定将ivar1的类型从UInt8更改为rawValue为UInt8的枚举像这样:structMy

Swift 等同于 Unity3d 协程?

研究如何在Swift3中构建类似的东西。我习惯在Unity3d中使用这种架构,也许没有类似的东西来处理异步数据。我听说过完成block+使用协议(protocol)/委托(delegate)在Swift中传递数据,但我认为拥有一个获取数据的公共(public)函数然后使用协程等待所有数据都在VC中会更容易开始吧。这是我用来创建它们的C#代码:Listdata=newList;privateIENumeratorget_data(){run_async_func_to_get_data();while(data.count==0){yieldreturnnull;}yieldbreak;

swift - 确定 WKInterfaceLabel 的字体大小和粗细 - 等宽字体需要

WatchKit支持usingamonospacedfontfordigits.使用Xcode8.3.2和WatchOS3。我相信我无法在InterfaceBuilder中定义/选择它,因此我需要手动设置它。为此,我可以使用:classfuncmonospacedDigitSystemFont(ofSizefontSize:CGFloat,weight:CGFloat)->UIFont它需要我设置尺寸和重量。我想从InterfaceBuilder中定义的标签设置中继承这些设置。但是:如何获取标签的当前尺寸和重量?似乎没有获取当前属性的方法。因此,在应用等宽字体时,我似乎需要对其进行硬编