一切都在标题中:)
ObjC 中是否有任何模板?
我需要相当于 c# :
public class MyClass<T> : Message
在 ObjC 中。
任何帮助都将非常感谢:(
一切都在标题中:)
ObjC 中是否有任何模板?
我需要相当于 c# :
public class MyClass<T> : Message
在 ObjC 中。
任何帮助都将非常感谢:(
没有这样的 ObjC 功能。虽然 ObjC++ 确实存在,但我强烈反对广泛使用它。它有很多问题,从糟糕的工具和调试器支持,到糟糕的编译器优化,再到降低的 ARC 性能。
ObjC 通常不需要模板,因为它不是强类型语言。AnNSArray
可以容纳任何对象,因此您无需使用模板即可获得正确的类型。你有一个你想要解决的具体问题吗?可能有更好的 ObjC 解决方案。
Obj-C 自 Xcode v7 起支持模板。它被命名为泛型:
轻量级泛型现在允许您为集合类指定类型信息,例如 NSArray、NSSet 和 NSDictionary。当您从 Objective-C 桥接时,类型信息改进了 Swift 访问,并简化了您必须编写的代码。例如:
NSArray<UIImage *> *images; NSDictionary<NSString *, NSURL *> *resourcesByName;
在https://developer.apple.com/library/content/documentation/Xcode/Conceptual/RN-Xcode-Archive/Chapters/xc7_release_notes.html中查找“Objective-C 语言更改”部分
顺便说一句,Xcode 支持通过 New->File 添加 C++ 类。在 C++ 中使用 extern "C" {} 构造意味着您可以根据需要提供尽可能多或尽可能少的 C 可调用接口,然后您可以直接从您的 Objective-C 代码调用,因为 Objective-C 是 C 的超集.
话虽如此,坚持使用 Objective-C 范式可能是一个好主意,除非您有迫切的理由要移出它,例如需要将现有 C++ 代码体合并到您的项目中。(这并不是说 Objective-C 是一种“更好”的语言,这完全是另一回事。)