ios 中protocol的问题,有点不是太明白,请教下。

发布于 2022-08-25 01:50:45 字数 211 浏览 28 评论 0

在一个User类中我定义了

@protocol User

//+$2+
//-$2-

@end

在别的类中我就可以这样写

NSMutableArray<User> *users;

这是什么原理?没有反倒资料啊。 还有个问题,不知道哪位大神是永RPC协议的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷情妓 2022-09-01 01:50:45

因为Objective-C不像C或者Java那样有一份严格的语言标准定义,所以只能根据实际现象认为:这种声明变量的语法是合法的,但是实际使用中没有任何意义。这种语法就是声明一个类是遵循某种协议的语法,只不过我们通常是这样用的:

id<User> user;

你这里把id换成了NSMutableArray *,在语法上是合法的,也就是说编译器不会抱怨,但实际运行中,没有任何意义。users数组仍然可以接受任何对象,编译时不会产生警告,运行时也不会产生异常。这跟C++中的模版是两回事,虽然看起来有点像。

梦初启 2022-09-01 01:50:45

Objective-C uses angle brackets to indicate conformance to a protocol.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文