问题标签 [objective-c-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
21224 浏览

objective-c - 协议与类别

谁能解释一下Objective-C 中协议类别之间的区别?你什么时候使用一个而不是另一个?

0 投票
3 回答
197 浏览

java - 将协议中的 @optional 选择器移植到 Java 接口

所以,假设你有这个:

而且两者bar:都有mux:副作用。

如果协议(接口)中没有 @optional 成员之类的东西,您将如何将其移植到 Java?

我可以想到三种方法:

  1. C方式:向接口添加一个方法,该方法返回一个位域,表示哪些方法已实现且有效。
  2. COM方式:修改接口,使所有方法都返回一个结果码并检查E_NOTIMPL。使用 out 参数作为返回值。
  3. (我想象的是)Java 方式:将每个接口方法标记为抛出 UnsupportedOperationException 并捕获它们以检查未实现的方法。

我是否错过了任何其他令人信服的选择?假设这段代码不经常被调用,所以我们不需要优化性能,我认为 3 是最好的方法,因为它是可执行的。有替代方案的论据吗?

0 投票
1 回答
60 浏览

objective-c - 如何在协议中查找所需的方法?

这就是我所做的。在 Chrome 或 Xcode 中查找协议的苹果文档时,我 Cmd-F 搜索“必需”。如果结果为零,我得出结论,该协议中的所有方法都是可选的。

我做对了吗?还是有任何“正式”的方式?

0 投票
1 回答
649 浏览

ios - 在符合 MKAnnotation 协议的同时动态创建 CLLocationCoordinate2D

我有MyClass符合MKAnnotation协议的。根据文档,需要类来实现coordinate应该返回CLLocationCoordinate2D实例的属性。我的第一个实现是这样的:

但这没有用:每当我调用[self.mapView addAnnotation:instanceOfMyClass];它时,它根本就没有添加到 ! 的annotations数组中mapView

_coordinate因此,对我来说,解决方案是在其中定义一个实例变量MyClass并实现协议一致性,如下所示:

现在起作用了。所以,这里的问题是为什么需要一个实例变量并且动态创建CLLocationCoordinate2D不起作用?

0 投票
3 回答
420 浏览

objective-c - 如何枚举符合 NSFastEnumeration 的任意集合

我试图枚举一堆对象,根据情况,这些对象可能是 NSArray 或 NSOrderedSet。由于两者都符合 NSFastEnumeration,我希望这可以工作:

但是,我收到以下编译器错误:

选择器“objectEnumerator”没有已知的实例方法。

我怀疑这里有一些语法错误,我之前没有使用 id 构造。我可以将一组或两组转换为一个通用类,但如果可能的话,我想更好地了解这里发生了什么。

0 投票
3 回答
800 浏览

objective-c - Objective C 类声明语法

我需要一些帮助来理解 Objective C 中的类声明语法,或者更具体一些

UITableViewDataSource,UITableViewDelegate 是什么意思

我的理解是当类被实例化时它接收这两个对象。如果我错了,请纠正我..

0 投票
1 回答
64 浏览

objective-c - 代表没有调用方法

所以我有一个问题。有人可以告诉我这行代码调用(协议)方法的问题吗

poplogin 是方法名称,由于某种原因它不起作用。它没有调用方法poplogin

以供参考 :

所以让我解释一下这个案子

所以可以说我有一个类 abc.h

接口后

0 投票
1 回答
348 浏览

objective-c - 子类实现自己的协议委托

我是iOS新手,不知道这是否可能。

基本上我有两个班级父母和孩子。

Parent 有一个符合 ParentProtocol 的委托。但是,Child 中的委托不仅符合 ParentProtocol,还符合另一个 ChildProtocol。

那么是否可以做到以下几点?

0 投票
2 回答
2435 浏览

objective-c - 有没有办法只允许 UIViewControllers 遵守协议?

有没有办法做这样的事情(下面不起作用):

所以实现“ElementPicker”的对象必须继承自UIViewController

0 投票
2 回答
275 浏览

objective-c - 符合协议列表

我有一个条件,我希望视图控制器符合 4 个协议中的任何一个。

有没有办法检查它是否符合这 4 个协议中的任何一个,而无需在我的 if 中执行一堆 or 语句?

你能制作一系列协议吗?