草庐IT

delegating-constructor

全部标签

ios - 哪个更适合做异步?委托(delegate)还是 block ?

我有一个模型Model,它通过JSONAPI加载一些东西,然后我以某种方式在UI中显示它。假设一次只有一个current实例(根据时间从服务器获取),所以我有一个看起来像这样的方法调用[Modelcurrent]。问题是我需要在加载数据时做一些事情,这导致我有两种可能的解决方案:Delegation-类似于[ModelcurrentWithDelegate:self],我将在self上实现一个具有回调的协议(protocol)block-[ModelcurrentWithSuccess:^(idresponse){...}error:^(NSError*error){...}]因为我是

ios - 在 UIView/UIViewController 关系中定义委托(delegate)

我有一个名为TargetView的子类UIView,它包含在一个名为MainViewController的UIViewController中。我想将MainViewController设置为TargetView的委托(delegate),以便MainViewController可以从subview(TargetView)接收消息。在我的MainViewController(UIViewController)header中,我有以下内容:#import#import"TargetView.h"@classTargetView;@interfaceMainViewController:UI

ios - 从委托(delegate)返回到带有 GCD 的线程

我们正在实现一个同步系统,其中一些操作异步发送到SAPMobilePlatform服务器,当操作完成时,我们会收到来自专有SDK的委托(delegate)调用。此委托(delegate)方法在随机线程上运行,不使用GCD。我们想要发送操作——然后等到委托(delegate)方法被调用,这意味着操作完成——然后在完成(或发生超时)时恢复工作。我知道这可能看起来是同步的,但我们不能允许用户在操作尚未完成时修改数据以确保数据完整性。SyncViewController正在执行一些繁重的同步工作并使用GCD,并在UI线程中更新进度条和一些文本。现在,当委托(delegate)方法被调用时,我们

ios - 设置 UIAlertView 委托(delegate)

我尝试调用委托(delegate)方法,但没有调用。我应该在我的代码中更改什么?谢谢。我尝试在Class1.m中添加:+(void)popupAlert:(NSString*)msgtag:(NSInteger)tag{Class1*c=[[Class1alloc]init];UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@""message:msgdelegate:c(Ialsotriedc.self)cancelButtonTitle:...otherButtonTitles:...,nil];alert.tag=tag;[a

ios - swift 3 WKWebView 委托(delegate) WKNavigationDelegate 有歧义的方法

我创建了一个名为JSBridge的类,这个类实现了WKNavigationDelegate,我在协议(protocol)方法中做了一些自定义的东西,然后调用另一个UIViewController的默认WKNavigationDelegate,例如WebViewController又名webViewDelegate,所以我必须这样做funcwebView(_webView:WKWebView,decidePolicyFornavigationAction:WKNavigationAction,decisionHandler:@escaping(WKNavigationActionPoli

objective-c - 我应该在哪种方法中设置 UITextField 的委托(delegate)?

在viewDidLoad或init方法中设置UITextField的委托(delegate)是好的做法吗?我尝试在init方法中将委托(delegate)设置为self,但它没有调用相应的委托(delegate)方法,当我将代码移动到viewDidLoad时,它注册为将self设置为委托(delegate)?看来我应该能够用任何一种方法设置它,如果有人能帮我解决这个问题,我将不胜感激。-(id)init{self=[superinit];if(self)textField.delegate=self;//thistextfieldisanIBOutlet//someothercodeh

ios - 从一个类到多个类的委托(delegate)调用

也许我误解了委托(delegate)模式,但有人可以解释一下当我只定义一个协议(protocol)和委托(delegate)属性时如何让委托(delegate)调用从一个类调用到2个类吗?运行下面的代码只会调用detail2VC中的doSomething,但我想在两者中都有消息。我可以定义符合协议(protocol)的第二个属性,或者定义第二个协议(protocol),但我认为这不是正确的方法。ViewController.h#import@protocolViewControllerDelegate@optional-(void)doSomething;@end@interfaceV

ios - UISearchBar 委托(delegate)函数没有响应

UISearchBar委托(delegate)函数仅对iOS7iPhone5不响应。我的代码中有两个.xib文件,一个用于3.5英寸屏幕,一个用于4英寸屏幕。对于3.5英寸屏幕,它工作正常,但对于4英寸屏幕,委托(delegate)函数没有被调用。你能指导我吗?-(void)searchBarTextDidBeginEditing:(UISearchBar*)searchBar{[searchBarsetShowsCancelButton:YESanimated:YES];[selfkeyboardWillShow];}-(void)searchBarCancelButtonClick

ios - 不再调用 FBLoginView 委托(delegate)方法

我在我的应用程序中使用FBLoginView(版本3.xx)根据他们的Facebook个人资料自动创建用户帐户,但是FBLoginViewDelegate的委托(delegate)回调不会不再接到电话。我的代码如下:在我的AppDelegate的didFinishLaunchingWithOptions方法中,我有这一行:[FBLoginViewclass];我有一个名为LoginHandler的类,它符合FBLoginViewDelegate协议(protocol)并实现了这些方法:-(void)loginViewShowingLoggedInUser:(FBLoginView*)l

ios - 如何使用委托(delegate)在 viewDidLoad 中重新加载 tableview?

我有一个简单的TODO列表,其中有:协议(protocol)的方法reloadTableViewWhenItChanges;获取数据(即核心数据);TableView在停止/运行编译器后重新加载。但我需要在viewDidLoad中重新加载TableView(而不是在viewWillAppear/viewDidAppear中),仅在中发生某些更改后才使用委托(delegate)表重新加载>managedObjectContext.我该怎么做?这是我的代码(它有什么问题?例如,我必须将[self.tableViewreloadData]放在我的代码什么地方?):-(void)viewDid