在一个User类中我定义了
@protocol User
//+$2+
//-$2-
@end
在别的类中我就可以这样写
NSMutableArray<User> *users;
这是什么原理?没有反倒资料啊。 还有个问题,不知道哪位大神是永RPC协议的
在一个User类中我定义了
@protocol User
//+$2+
//-$2-
@end
在别的类中我就可以这样写
NSMutableArray<User> *users;
这是什么原理?没有反倒资料啊。 还有个问题,不知道哪位大神是永RPC协议的
2 回答1.1k 阅读
1 回答1.2k 阅读✓ 已解决
1 回答2.8k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答949 阅读
1 回答790 阅读
因为Objective-C不像C或者Java那样有一份严格的语言标准定义,所以只能根据实际现象认为:这种声明变量的语法是合法的,但是实际使用中没有任何意义。这种语法就是声明一个类是遵循某种协议的语法,只不过我们通常是这样用的:
id<User> user;
你这里把
id
换成了NSMutableArray *
,在语法上是合法的,也就是说编译器不会抱怨,但实际运行中,没有任何意义。users
数组仍然可以接受任何对象,编译时不会产生警告,运行时也不会产生异常。这跟C++中的模版是两回事,虽然看起来有点像。