草庐IT

ios - 协议(protocol)要求委托(delegate)继承自 UIViewController

我有一个看起来像这样的协议(protocol)ShareDelegate:protocolShareDelegate:class{funcshare(event:EventJSONModel,skipToTimetime:CMTime?,view:UIView,completion:@escaping()->())}extensionShareDelegatewhereSelf:UIViewController{funcshare(event:EventJSONModel,skipToTimetime:CMTime?=nil,view:UIView,completion:@escapi

ios - delegate 在 urlSession 的操作中变为 nil。如何将委托(delegate)变量保存在单独的线程中?

我正在使用OperationQueue使用URLSession.dataTask将文件一个一个地上传到远程服务器。委托(delegate)用于更新进度条,但在实现OperationQueue后,我的委托(delegate)变为零。它在没有OperationQueues的情况下工作。在程序运行时查看堆栈,我看不到进度条的ViewController。已经好几天了,我还是不太明白。我猜ViewController正在被释放,但我不确定如何防止它被释放。谢谢。我在NetWorkViewController中将委托(delegate)设置为self,但在我的NetworkManager类的ur

ios - 自定义委托(delegate)和数据源 NSObject 最佳实践

考虑这种情况,我有一个UIViewController,它包含一个简单的UICollectionView,但是Delegate&DataSource协议(protocol)是分开的来自UIViewController的NSObject。看起来像这样classMainCollctionViewDelegate:NSObject,UICollectionViewDelegateclassMainCollectionViewDataSrouce:NSObject,UICollectionViewDataSource我在我的UIViewController中像这样使用它们,lazyvarCVD

swift - swift 改变(精炼)委托(delegate)类型

我有一个(swift)类,它有一个指向委托(delegate)的弱指针,如下所示:importUIKit@objcpublicprotocolDRSlidingPanelViewControllerDelegate:class{optionalfuncdidSlidePanel(panelHidden:Bool,sender:DRSlidingPanelViewController)->Void}publicclassDRSlidingPanelViewController:UIViewController{publicweakvardelegate:DRSlidingPanelVie

swift - 我应该如何命名返回 "continue"标志的委托(delegate)方法?

在我的Swift代码中,我有几个看起来像这样的方法:protocolEditorDelegate{//...funcdidStartSearch(query:String)->Bool}classEditor:UIViewController{funcsearch(sender:AnyObject){letwasHandled=self.delegate?.didStartSearch(query)??falseif!wasHandled{//dodefaultsearchingbehavior}}}这有效,但它不是self记录的。didStartSearch方法并没有真正表明它正在返

swift - 如何正确地将 3rd 方库委托(delegate)转换为 RxSwift Observable

我有一个案例,我正在使用第3方库,我想将它变成一个Observable。适本地,库是围绕代表设计的,正如人们所期望的那样,所以我将其包装起来。该库执行异步操作,并在完成时调用它的委托(delegate)并返回结果。我绝对想利用可观察对象的冷特性,只在有人订阅时才开始操作。我有一个可行的解决方案,我只是不知道它是否存在严重缺陷并且我缺少对RxSwift的一些重要理解,或者也许有更简单的方法来实现相同的目标。publicfinalclassRxLibBridge:LibDelegate{letlib=Lib()let_source=PublishSubject()publicinit(){

ios - 自定义委托(delegate)类

我正在类中创建一个自定义委托(delegate),并尝试在我的Controller中实现该协议(protocol)。但不工作,因为委托(delegate)为零。我就是这样做的:BluetoothOperations.switprotocolGetWatchCollectedData:NSObjectProtocol{funcgetWatchCollectedData(COMMAND_ID:UInt8,data:NSData)}classBluetoothOperations:NSObject{vargetWatchCollectedData:GetWatchCollectedData?

ios - 在 viewDidLoad() 之前调用 UITableView 委托(delegate)方法

在UIViewController的viewDidLoad()中,调用了一个方法来更新类变量。一旦我导航到另一个ViewController并返回到这个ViewController,UITableView的委托(delegate)方法将首先在使用该类变量的地方被调用。应用程序崩溃是因为该变量正在viewDidLoad()中构造。如何解决这个问题?谢谢。有问题的类变量:varshowHideDict=Dictionary()viewDidLoad():overridefuncviewWillAppear(){super.viewWillAppear()makeAPICall()}API调

ios - Swift 从 didSet 调用委托(delegate)

我的GameState类有一个委托(delegate)。每次使用didSet更改playing:Bool时,我都试图调用gameStateUpdated方法。我的代表一直收到EXC_BAD_ACCESS。甚至检查它是否为零。当playing被设置时,我得到一个EXC_BAD_ACCESS并且我确信我的delegate不是nil。varstateDelegate:GameStateDelegate?varplaying=false{didSet{stateDelegate?.gameStateUpdated(self.playing)}}我知道我不想从计算属性的setter中引用self

ios - 使用转换委托(delegate)时触发 viewWillAppear

我想呈现一个ViewController:模态使用自定义转换同时,我想确保当它被关闭时,它背后的ViewController知道被推到前台。我的基本想法是尝试一些不同的配置,看看哪一个会导致viewWillAppear在后面的ViewController上被调用。尝试1presentedViewController.modalPresentationStyle=.CustompresentedViewController.transitioningDelegate=someTransitioningDelegate这种方法的结果:自定义过渡效果非常好当我调用presentedViewC