草庐IT

compact_protocol

全部标签

ios - 方法未在协议(protocol)中实现(使用 wit.ai SDK)

我是第一次使用wit.aiiOSSDK,我是按照官网入门页面写的一步一步来的https://wit.ai/docs/ios/3.1.1/quickstart.我收到此错误:Method'witDidGraspIntent:entities:body:error:'inprotocol'WitDelegate'notimplemented.我仍然可以运行应用程序并且消息显示在我的收件箱中(在控制台中)但没有响应被发回并且应用程序崩溃了。我收到此错误:Errorwhenenqueuingbufferfromcallback这是我的代码ViewController.m#import"View

ios - 在 AppDelegate.m : "prefix attribute must be followed by an interface or protocol" 中实现协议(protocol)

我正在向AppDelegate添加两个协议(protocol),以便我可以交换RootViewController。我在之前的项目(2个月前)中这样做过,效果很好:@interfaceAppDelegate()@end所以我在今天的项目中做了同样的事情,但是我所有的函数都给出了这个错误:缺少方法声明的上下文所以我尝试了这个:@interfaceAppDelegate()AppDelegate@end现在我明白了Prefixattributemustbefollowedbyaninterfaceorprotocol使AppDelegate.m符合协议(protocol)的正确方法是什么?

iOS:如何判断类型为 id 的对象是类还是协议(protocol)

这是非常高级的东西。我正在处理一些运行时代码作为一个副项目。我要解决的问题是:如果我有一个类型为id的对象,并且该对象可以是字符串、类或协议(protocol),我如何辨别它是什么?例如,这是我正在处理的一些代码:[objArrayenumerateObjectsUsingBlock:^(idobj,NSUIntegeridx,BOOL*stop){if([objisKindOfClass:[NSStringclass]]){//Dosomethingwiththestring...}elseif(...objisaProtocol...){//Dosomethingwiththepr

ios - @protocol 之前的 static 关键字

可以这样写代码:static@protocolMyProtocol...@end编译成功。为什么没有错误?编译器如何解释static? 最佳答案 它显然被默默地忽略了,因为你不能指定协议(protocol)的存储类,因为它没有意义。 关于ios-@protocol之前的static关键字,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/31807374/

ios - 如何将 CodingKeys 用于符合 Codable 协议(protocol)的枚举?

我有一个EmailVerificationStatus枚举,它有一个符合Codable协议(protocol)的String关联类型:enumEmailVerificationStatus:String,Codable{caseunverifiedcaseverified}我正在使用的网络服务以大写形式发送这些案例(UNVERIFIED/VERIFIED)。我如何使用CodingKeys枚举来映射这种差异?以下内容不起作用:enumCodingKeys:String,CodingKey{caseunverified="UNVERIFIED"caseverified="VERIFIED"

ios - 使用协议(protocol)创建类型别名

我可以像这样定义2个类型别名吗?typealiasMyViewControllerTypeOne=UIViewControllertypealiasMyViewControllerTypeTwo=UIViewController,MyGreatProtocol我已经知道第二个不适用于此语法。但是怎样才能得到我想要的结果呢?(我想我想要的在这里很明显。) 最佳答案 在Swift4中,您现在可以使用&运算符使用任意数量的协议(protocol)组合一个类:typealiasMyViewControllerTypeTwo=UIViewCo

ios - 在运行时添加具有新协议(protocol)的新类获得不同的行为

我在我的一个项目中发现了一个奇怪的问题。我的目标是在运行时添加一个带有新协议(protocol)的新类。我取出了我的代码部分来重现这个问题。-(void)viewDidLoad{[superviewDidLoad];[selfregisterClass:@"Daidouji"];[selfprotocolInClass:NSClassFromString(@"Daidouji")];}-(void)registerClass:(NSString*)className{Classsuperclass=(Class)objc_getClass("UIViewController");Cla

objective-c - @protocol 与类集群

对于@protocol和ClassClusters,那些主要的赞成和反对是什么?Objective-C中的概念?两人介绍LooseCoupling在程序架构中。它们在概念上几乎相等,还是还有其他值得了解的东西? 最佳答案 警告:不是cocoa专业人士,但我认为它们根本不平等。与ClassClusters你子类。ClassclustersareadesignpatternthattheFoundationframeworkmakesextensiveuseof.Classclustersgroupanumberofprivatecon

iphone - 如果 Controller 符合协议(protocol),那么它是否有必要为协议(protocol)的所有方法提供一个主体?

在Java中,有包装类。但是在objective-c中有什么包装类或其他东西? 最佳答案 在ObjectiveC协议(protocol)中,方法可以被标记为@optional-这些方法不必实现。例如@protocolMyProtocol@required-(NSUInteger)methodOne;@optional-(NSUInteger)methodTwo;//Doesn'thavetobeimplemented@end然后调用协议(protocol)的方法应该检查实例是否响应那个选择器:if([anInstanceOfACla

ios - Swift 2 - 协议(protocol)符合 Equatable 问题

我对下面定义的协议(protocol)有疑问。我有两个要求:我希望能够将协议(protocol)Peer用作其他类中的类型,同时保持具体类的私有(private)性。我想将协议(protocol)存储在数组中并能够确定实例的索引。为了满足第二点,我需要让协议(protocol)符合Equatable协议(protocol)。但是当我这样做时,我不能再将Peer用作类型,因为它需要被视为通用类型。这意味着我不能再将具体实现私有(private)化,并且要求1已被打破。想知道是否有其他人遇到过这个问题并以某种方式解决了它。也许我误解了我在indexOf...处遇到的错误Group.swif