草庐IT

compact_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 - UISplitViewController:从 Compact 旋转到 Regular 时如何防止扩展

补充问题有很多答案,即如何防止在从Regular到Compact界面更改时过渡到PrimaryOverLay,例如使用funcsplitViewController(splitViewController:UISplitViewController,collapseSecondaryViewControllersecondaryViewController:UIViewController,ontoPrimaryViewControllerprimaryViewController:UIViewController)->Bool在我的例子中,我有一部iPhone6+,细节View以纵向

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

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

ios - 一个协议(protocol),被多个类使用

我了解如何使一个类符合多个协议(protocol),但是我应该在哪里以及如何定义一个将被多个类调用的协议(protocol),即_delegate.doStuff可以出现在几个类中。 最佳答案 在xcode中,File->NewFile->Objective-cProtocol@protocolmyProtocolName-(void)doStuff;@end然后在你想要实现这个协议(protocol)的类中...#import"myProtocol.h"@interfaceaClass...您可以将其添加到任意数量的类中。

ios - 协议(protocol)的方法调配

我希望能够使用Swizzle协议(protocol)方法,例如textFieldDidBeginEditing:和tableView:didSelectRowAtIndexPath:。如何做到这一点? 最佳答案 首先:调配方法需要非常充分的理由。没有“协议(protocol)的方法调配”。方法调配意味着您将方法实现指针交换为选择器。协议(protocol)没有实现。您可以调配协议(protocol)中声明的方法。但是你是在符合协议(protocol)的类中做的,而不是在协议(protocol)本身。这是一个查找实现方法的类的示例:S

ios - Swift:如何实现协议(protocol)(接口(interface))的部分类实现?

来自Java/C++等语言,我们习惯于部分或抽象类实现,例如protocolProtocolA{funcx()funcy()}//attempttopartiallyimplementProtocolAclassAbstractProtocolA:ProtocolA{funcx(){/*implementation*/}//doesnotimplementfunctiony}classConcreteA1:AbstractProtocolA{funcy(){/*implementation*/}}classConcreteA2:AbstractProtocolA{overridefun

ios - 隐藏类符合协议(protocol)的逻辑

是否有任何方法可以隐藏该类符合某些协议(protocol)?就像在Objective-C中一样-只是用于在.m文件中添加协议(protocol),其他类(来自另一个文件)没有看到它。例如。我有一个带有文本字段的测试单元格。我想隐藏这个单元格符合协议(protocol)。类似的东西:classTestCell:UITableViewCell{}fileprivateextensionTestCell:UITextFieldDelegate{}但是编译器向我发誓。任何优雅的解决方案? 最佳答案 此功能已被Swift团队声明为“不太可能”

iphone - 第一次使用协议(protocol) - Objective-C

这是我第一次在Objective-C中使用协议(protocol),我遇到了麻烦:这是我得到的:我有一个ReportsReceiver.h:@protocolReportsReceiver-(void)receiveData:(NSArray*)theData;@end我有一个MyController.h:@interfaceMyController:UIViewController{}@end我有一个带有实现方法的MyController.m:-(void)receiveData:(NSArray*)theData{NSLog(@"receivedsomedata!");}然后我有一