在Objective-C<>中使用更多/更少然后签名的用途是什么?

时间:2014-10-07 09:24:03

标签: ios objective-c

嗨,<< >在ios?我无法找到一些相关的文档。

以下是其使用的示例

  

id< TYPE>

我希望有人可以帮我解决我的问题。先谢谢你们。

3 个答案:

答案 0 :(得分:3)

这意味着它是符合指定协议的通用对象指针。

因此:

@protocol SomeProtocol <NSObject>
- (void)someMethod:(int)a;
@end

@interface SomeClass : NSObject <SomeProtocol>

@end

允许:

SomeClass *obj = [SomeClass new];

// call method via the protocol interface
id<SomeProtocol> iface = obj;
[iface someMethod:1];

答案 1 :(得分:3)

它表示一个类采用协议(在&#39;&lt;&gt;&#39;中指定)

请参阅此处的Apple文档:https://developer.apple.com/library/ios/documentation/cocoa/conceptual/programmingwithobjectivec/workingwithprotocols/workingwithprotocols.html

顺便说一句,它是一种语言功能而不是操作系统功能。您应将问题标记为objective-c而不是iOS

答案 2 :(得分:2)

它是类定义(@interface)的一部分或定义变量的类型。它是一种告诉编译器类/类实现协议的方法。该类实现的协议名称位于以逗号分隔的三角括号内。

在你的情况下:

id <protocolName> object;

表示您声明了一个名为object的{​​{1}}变量,该变量实现了协议id

协议是方法的集合。因此,它允许您将protocolName定义的消息发送到protocolName,而无需编译器发出警告。

Apple docs here