草庐IT

Delegate

全部标签

swift - iOS 9 中的 requestLocation() 多次调用 didUpdateLocation 委托(delegate)

所以在iOS9上有了新的requestLocation()方法。我试图用它来只获取一个位置更新,但它多次点击didUpdateLocations。这不是应该只调用一次吗?我已将distanceFilter设置为1000.0,因此范围很广,有助于快速返回。有任何想法吗?即使我在委托(delegate)方法中调用stopUpdatingLocation(),我仍然会得到三次委托(delegate)。注意:当我改用StartUpdatingLocation时会发生相同的行为,我只想返回一次,因为我想获得用户的当前国家/地区,因此将位置提供给reversegeocoder提前致谢代码如下:fu

swift - 为什么 "var delegate: UIApplicationDelegate?"在 UIApplication 中成为可选项?那会是 fatal error 吗?

如果delegate属性曾经是nil,应用将处于不可恢复的状态。classUIApplicationDeclarationunowned(unsafe)vardelegate:UIApplicationDelegate?DiscussionEveryappmusthaveanappdelegateobjecttorespondtoapp-relatedmessages.Forexample,theappnotifiesitsdelegatewhentheappfinisheslaunchingandwhenitsforegroundorbackgroundexecutionstatus

ios - 弱委托(delegate)变为零

在我的应用程序中,我使用委托(delegate),这样我就可以在数据准备就绪时读取它。我正在调用来自两个类的委托(delegate)。这是我的代码protocolMyDelegate:class{funcgetData()}classMyDelegateCalss{weakvardelegate:MyDelegate?funcloadData(){//doingsomeactionsif(self.delegate!=nil){self.delegate!.getData!()}}}在一个类中,我在tableviewnumberOfSections委托(delegate)方法中加载此方

swift - Swift 中的多 View Controller 导航

Swift中的侧边菜单导航swift4.2,Xcode10.0我的最终目标是能够轻松(正常)横向/导航我的ViewController,如下所示。我希望能够使用通用侧边菜单从ViewController导航到ViewController。至此,我想出了一个令人难以置信的hacky方法来完成此操作,其中当我在侧边菜单中选择一个ViewController时,它会关闭侧边菜单,然后在呈现下一个View之前从那个Controller开始,假设它不是目标ViewController,当我从那个ViewController转到目标ViewController时,一个窗口会暂时覆盖它的内容。从侧边

ios - swift SKSpriteNode : Detect Tap/DoubleTap/LongPress

我正在尝试创建SKSpriteNode的子类,它可以检测用户交互(点击、双击并按住),然后遵从委托(delegate)。在我看来,这是一个相对普遍的需求,但是:代码无法在不触发单击的情况下检测双击。我还没有找到检测按住/长按操作的方法。我是不是做错了?我不禁觉得SpriteKit应该有一些标准来处理如此基本的事情。我知道有UIGestureRecognizer,但它似乎与特定的SKNodes而不是UIViews不太兼容。这是我目前拥有的。基于Apple的示例,我在主类文件中包含所有非设备特定代码:importSpriteKitenumActionType:Int{caseSinglec

ios - 如何模态呈现 ViewController,然后在 ViewController 被关闭后运行回调函数/ block ,没有委托(delegate)?

我只是知道self.presentViewController(childVc,animated:true,completion:{})中的完成block在subviewController完成动画后被调用显示在屏幕上。实际上,我想运行一段代码,在subviewController的动画完成后显示关闭。我该怎么做,最好避免使用委托(delegate)来做到这一点?编辑:我从呈现的(子)ViewController中这样调用它:self.presentingViewController.dismissViewControllerAnimated(true){},但问题是subviewCo

ios - 为什么 Apple 可以声明不带@objc 的可选协议(protocol)函数和无主可选变量,而我不能?

我不确定如何在swift中声明委托(delegate)。所以我检查了Apple的UITableView的代码(通过命令+单击XCode中的UITableView),发现了一些奇怪的东西。以下是UITableView委托(delegate)的声明:代表是一个unowned(unsafe)optionalvalue,但是根据Apple'sdoc:据说anunownedreferenceisassumedtoalwayshaveavalue但是,委托(delegate)当然可以为nil,即没有值。事实上,委托(delegate)被声明为UITableViewDelegate?,这是一个可选值

swift - 将不可失败的初始化器委托(delegate)给可失败的初始化器

编辑感谢@AirspeedVelocity,找到了一个简单的解决方案,添加了一点扭曲,因为它是从JSON解析的。允许初始化器采用AnyObject?并默认为Unknown(或Invalid):init(value:AnyObject?){ifletvalue=valueas?Int,letresult=Result(rawValue:value){self=result}else{self=.Unknown}}//原创我已经实现了一个带有Unknown案例的枚举:enumResult:Int{caseSuccesscaseFailurecaseFoocaseBarcaseFooBarc

ios - 在快速的委托(delegate)数组中查找委托(delegate)

我想在删除之前检查我的removeDelegate方法中是否已经有一个委托(delegate)。我怎么做?这是我到目前为止所得到的:protocolLocationManagerDelegate{funclocationManagerDidUpdateLocation(oldLocation:CLLocationCoordinate2D,currentLocation:CLLocationCoordinate2D)}classLocationManager:NSObject{privatevar_delegates=[LocationManagerDelegate]()funcremo

ios - RXSwift 如何为具有返回值的委托(delegate)方法创建包装器

我在RXSwift中有一个委托(delegate)包装器functableView(tableView:UITableView,movedRowAtIndexPathsourceIndexPath:NSIndexPath,toIndexRowPathdestinationRowIndexPath:NSIndexPath)他们看起来像publicvarrx_itemRowMoved:ControlEvent{letsource:Observable=rx_delegate.observe("tableView:movedRowAtIndexPath:toIndexRowPath:").m