草庐IT

protocol-oriented

全部标签

iphone - Objective-c - 类别和协议(protocol)的目的

我一直在阅读有关Objective-c协议(protocol)和类别的文章,但对我来说两者似乎都毫无意义。它们都用于以某种有趣的方式向程序添加内容,而不是仅仅手动添加。我可能确信协议(protocol)的目的是让您可以检查ID的类型,但仅此而已。我认为它们没有其他实际用途。至于类别,我真的不明白您为什么不直接将它们添加到代码中。为什么您需要在您要实现的类别中手动指定方法,而不是正常执行?您是否想创建一个“子类”但稍作修改?为什么不创建一个子类?我真的看不出这两个的用途,希望有人能告诉我它们的真正用途=/提前致谢,基督徒 最佳答案 类

ios - EADemo 代码中的协议(protocol)字符串名称

每当我第一次连接MFi配件时,我需要在plist文件中声明哪些协议(protocol),我可以从哪里获得它的名称?即使在连接我的MFi配件并运行EADemo代码后,它仍然显示没有连接配件?我假设EADemo代码将无法工作,除非并且直到编写了一些适当的附件相关协议(protocol)字符串而不是com.apple.p1和com.apple.p2。我知道有一个名为EAAccessory的类并使用属性protocolString,我可以知道协议(protocol)字符串名称。但首先,即使它需要plist文件中列出的协议(protocol)字符串名称才能运行代码。我是否需要询问制造商了解协议(

iphone - 由于 Orientation/Shake,UINavigationController 加载 View 不正确

背景:App有摇一摇回家功能。首页View仅支持纵向。如果你比平常更用力摇晃,你所在的View开始旋转(这很好),但随后它检测到摇晃并对主视图执行popViewControlller。当它这样做时,它会很好地加载导航Controller,但是(主页内容)下的View会加载到栏后面并向上拉伸(stretch)(它基本上是在导航栏下方加载,所以它被拉伸(stretch))后退按钮可以很好地处理从横向到纵向的这个问题(因为它不是中间过渡)我应该如何处理这种方向变化(来自摇动),以便我可以弹回RootViewController,而无需在导航栏下加载View?编辑:发生的事情是内容认为它有整个

objective-c - 警告 : duplicate protocol definition of '...' is ignored

我应该如何回应这个警告?warning:duplicateprotocoldefinitionof'...'isignored我的协议(protocol)声明在它自己的.h文件中,它在我项目的其他几个文件中被#import。好吧,以防万一,这里是带有协议(protocol)声明的整个头文件:#import@classWrapper;@protocolWrapperDelegate@required-(void)wrapper:(Wrapper*)wrapperdidRetrieveData:(NSData*)data;@optional-(void)wrapperHasBadCrede

ios - iOS 应用程序设置中的 "Supported Device Orientation"有什么意义?

在XCode4.2+iOS5SDK中,我将“SupportedDeviceOrientation”设置为“Portrait”。我希望这将使应用程序中的所有View仅支持“纵向”方向。然而,当我旋转iPhone模拟器时,我发现其他方向仍然有效。ViewController中的shouldAutorotateToInterfaceOrientation方法似乎是决定是否支持给定方向的关键。那么,如果不限制方向,为什么还要在应用程序级别设置“支持的设备方向”呢? 最佳答案 这是来自documentationforUISupportedIn

objective-c - 如何在运行时识别协议(protocol)方法是可选的?

我已经定义了我的协议(protocol)。我已经提到我的两个协议(protocol)方法是可选的。在运行时,如何确定特定方法是否可选?有什么办法可以查出来吗? 最佳答案 这应该做你想做的:BOOLMethodInProtocolIsRequired(Protocol*protocol,SELmethodSelector){structobjc_method_descriptionmethodDesc=protocol_getMethodDescription(protocol,methodSelector,YES,YES);retu

objective-c - Objective C 协议(protocol)循环依赖?

我在自己的头文件中有一个protocolA,用作接口(interface)。然后我有两个具体类,它们是该协议(protocol)的不同实现。现在,在我的ViewController中,我使用它来声明类型为id的属性,它允许我在VC对此一无所知的情况下交换实现。我还有protocolB,用于从这两个实现对象到VC的委托(delegate)调用。问题是我有循环依赖。在协议(protocol)A中,我需要声明一个类型为id的“委托(delegate)”属性。在协议(protocol)B中,委托(delegate)方法将引用发送给调用者,调用者是类型id的对象...有没有更好的设计?更新示例,

objective-c - 采用 UIKeyInput 协议(protocol)从蓝牙键盘获取输入

我有一个基本上是无线键盘的蓝牙脚踏开关。一个踏板发送向上箭头键,另一个发送向下箭头键。当按下其中一个踏板时,我希望能够在我的iPad应用程序中执行我自己的代码。踏板的制造者告诉我我应该创建一个UITextField,并在包含的UIView中采用UIKeyInput协议(protocol)并使用beginningOfDocument和endOfDocument方法来执行我的代码。我这样做了,但无论我做什么,都没有调用UIKeyInput或UITextInput方法。任何人都可以引导我完成这个,或者指导我学习类似的教程吗?有更简单的方法吗?感谢您的帮助。这是我的.h:#import@int

ios - 导入协议(protocol)时没有类型或协议(protocol)错误

首先,在LoadingVC.h中我声明了一个协议(protocol):@protocolVideoWorker@required@property(nonatomic)floatprogress;@property(nonatomic)BOOLdone;-(void)beginWorking;@end@interfaceLoadingVC:UIViewController...@end然后在BlurWorkerGPU.h中...#import"LoadingVC.h"@interfaceBlurWorkerGPU:NSObject{...}-(void)beginWorking;@pr

objective-c - 关于未出现的缺少@required 协议(protocol)方法的编译警告

今天早上我正在修改XCode4.5.2并想制作一个表格View,我很自然地将UITableViewDataSource和UITableViewDelegate协议(protocol)添加到我的ViewController定义中。#import@interfaceMyViewController:UIViewController@end#import"MyViewController.h"@implementationMyViewController@end现在我知道在这个阶段我需要实现UITableViewDataSource协议(protocol)的@required方法但是出于(可