Objective C中的模板?

use*_*981 16 templates class objective-c ios

一切都在标题:)

ObjC中有模板吗?

我需要相当于c#:

public class MyClass<T> : Message
Run Code Online (Sandbox Code Playgroud)

在ObjC.

任何帮助将非常感谢:(

Rob*_*ier 14

没有这样的ObjC功能.虽然ObjC++确实存在,但我强烈反对它的广泛使用.它有许多问题,从糟糕的工具和调试器支持,到糟糕的编译器优化,到降低ARC性能.

通常,ObjC中不需要模板,因为它不是强类型语言.一个NSArray可以容纳任何对象,因此您不需要使用模板来获得正确的类型.你有一个特定的问题,你想解决?可能有更好的ObjC解决方案.

  • 字节是字节.它们与编写它们的实现无关.我可以在Perl中编写相同的字节,因为我可以在C#中编写.我可以用任何语言编写"这条数据表示'x'上的模板实例化"的数据,而不需要语言本身支持模板.也许您可以打开一个新问题,其中包含您尝试读写的数据格式的详细信息,我们可以帮助您构建一个便携式系统来实现这一目标.也就是说,将语言特定的对象序列化从一种语言转换到另一种语言总是充满挑战. (3认同)

Ant*_*ton 6

Obj-C 从 Xcode v7 开始支持模板。它被命名为泛型:

轻量级泛型现在允许您为 NSArray、NSSet 和 NSDictionary 等集合类指定类型信息。当您从 Objective-C 桥接时,类型信息改进了 Swift 访问,并简化了您必须编写的代码。例如:

NSArray<UIImage *> *images; 
NSDictionary<NSString *, NSURL *> *resourcesByName;
Run Code Online (Sandbox Code Playgroud)

https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html 中查找“Objective-C 语言更改”部分