草庐IT

protocol-handler

全部标签

ios - 面向协议(protocol)的编程和 Class Swift

我正在尝试从一个流行的教程站点实现面向协议(protocol)的类观看教程。到目前为止,我得到的一切都是正确的,但由于某种原因,其中一个属性没有被更新,而其他属性被更新。这是代码:protocolPaintable:class{varprimaryBodyColor:String{getset}varsecondaryBodyColor:[String]?{getset}funcpaint(newPrimaryColor:String,newSecondaryColor:[String]?)}extensionPaintable{varprimaryBodyColor:String{g

IOS 毒蛇 : How protocol helps in Unit Testing?

我对VIPER架构中的协议(protocol)的好处有点困惑。我了解DI(依赖注入(inject))是通过协议(protocol)实现的,有助于避免对象之间的直接依赖-我同意。但我从使用的角度来看真正的好处,一个例子可能是-特别是协议(protocol)如何帮助在单元测试中受益(测试交互器部分)。我们不能通过方法回调的使用block来实现同样的目标吗?希望有人能通过一些例子帮助我从使用的角度理解干杯 最佳答案 使用回调,例如从Interactor到Presenter,会使测试Presenter变得更加困难。在为Presenter如何

ios - 如果忽略“UIGestureRecognizerDelegate”的重复协议(protocol)定义,如何定义目标

更新2即使问题仍然存在,当前形式的问题也已得到回答和接受。该代码现在以0警告进行编译,但仍然对手势无响应。解决问题后,将希望通过准备新问题的过程来更新代码。一个新问题已发布here。据我所知,在我所阅读的任何帖子中都从未问过或回答过这个问题(请参阅下面的重复内容)。我正在尝试编写ObjectiveC测试代码,以从iPhone屏幕上由矩形UIView定义的任何区域中长按,点击或移动消息。到目前为止,如果UILongPressGesture,和handler方法都位于UITapGesture中,则我可以使用UIPanGestureUIView或UIViewController可靠地发送离散

ios - 在没有共享协议(protocol)变量的情况下,是否可以平等地访问不同(尽管相同)的结构?

我正在为我的项目使用一些自动生成的代码。在这些文件中,一些创建的结构在字面上是相同的,尽管名称不同。举个简单的例子,假设它们看起来像这样:structFromPlace:CoreClass{letid:Stringletname:String}structToPlace:CoreClass{letid:Stringletname:String}是的是的,我知道,应该只存在一个structPlace:CoreClass。我在这件事上别无选择,因为这段代码是在很远很远的地方自动生成的。只是逗我解决这个问题,好吗?:)CoreClass是它们的共同点,但与此关系不大。我也无法更改文件。它被锁

ios - Obj-c,我可以使用协议(protocol)作为函数参数的一种参数类型吗?

我正在创建一个cocoatouch框架来在我的应用程序之间共享一些通用代码。我需要将一个类的实例传递给一个方法,该方法具有一些特定的属性。该方法将从应用中调用。我对使用协议(protocol)还很陌生。我是否应该在我的框架中创建一个协议(protocol)h文件,其中包含函数所需的所有属性。如果可以,我可以将协议(protocol)作为实例变量的类型传递给函数吗?如果不是怎么实现呢? 最佳答案 是的,你可以。这是一个例子。首先,在.h文件中声明您的协议(protocol):@protocolVehicle@propertyNSNum

ios - 符合协议(protocol)的类 - 编译时检查

这是有效的语法吗?@property(nonatomic,strong)ClassmyClass;SomeProtocol定义为:@protocolSomeProtocol@required+(BOOL)isAllowed;@end我想强制执行编译时检查,这样当一个类(例如UIViewController)没有实现所需的isAllowed方法时,编译器会报错myClass属性。附言当我传入一个不符合SomeProtocol协议(protocol)的类时,我没有收到编译器警告或错误。 最佳答案 它在语法上是有效的,但正如您所发现的,它

ios - 无法解析协议(protocol)中的类型

#import"MPOContactAuthorizationManager.h"@protocolMPOContactAuthorizationManagerDelegate-(void)authorizationManger:(MPOContactAuthorizationManager*)managerdidUpdateContactState:(ContactsState)contactState;@endMPOContactAuthorizationManager和ContactState未解析为类型,即使它们已在MPOContactAuthorizationManager中

ios - 当已知该对象符合协议(protocol)时,断言该对象包含某些方法是否是一个好的模式?

出于我的项目UI的目的,我在UIViewController的类别中创建了一个通用方法,用于为导航项设置UI。这个特定的导航项有一个对应于操作(保存、确定、选择等)的黄色按钮和一个灰色按钮(取消、关闭)-(void)configureAsSaveCancelIPadHeaderWithTarget:(id)theTargetactionForYellowButton:(SEL)selYellowactionForGrayButton:(SEL)selGray我想我可以像这样缩小这个方法:-(void)configureAsSaveCancelIPadHeaderWithTarget:(

ios - 为什么 View Controller 的 header 中没有协议(protocol)声明?

我正在学习objective-c,我在我的书中找到了以下代码。我有3个问题,显然它通过实现两个必需的方法来符合协议(protocol),但为什么不用写就可以工作?在标题中?它符合哪个协议(protocol),UITableViewDataSource或UITableViewDelegate?为什么没有UITableView.delegate=self?这是代码,@implementationItemsViewController-(instancetype)init{self=[superinitWithStyle:UITableViewStylePlain];if(self){for

ios - 访问从协议(protocol)继承的属性的实例变量

我已经创建了一个简单的协议(protocol),它在符合的类上强制执行NSString属性:@protocolCPTSettingViewModel@property(nonatomic)NSString*titleText;@end当我创建一个符合此协议(protocol)的类时,Xcode建议我合成该属性:@synthesizetitleText;我的问题是,当我尝试在初始化程序中引用此属性的实例变量时,我收到错误消息:Useofundeclaredidentifier'_titleText';didyoumean'titleText'?我如何访问从协议(protocol)继承的属