Objective c 目标C:包含标量的泛型?

Objective c 目标C:包含标量的泛型?,objective-c,generics,Objective C,Generics,Xcode似乎允许这样做: @interface Foo<__covariant ObjectType> : NSObject @property (nonatomic,assign) ObjectType ooo; @end @接口Foo:NSObject @属性(非原子,赋值)对象类型ooo; @结束 但是,它给出了一个错误: Foo<int> *arrg; Foo*arrg; 如何创建泛型类为标量的类?我需要这个。int是一个C类型,不能直接用Object

Xcode似乎允许这样做:

@interface Foo<__covariant ObjectType> : NSObject
@property  (nonatomic,assign) ObjectType ooo;
@end
@接口Foo:NSObject
@属性(非原子,赋值)对象类型ooo;
@结束
但是,它给出了一个错误:

Foo<int> *arrg;
Foo*arrg;

如何创建泛型类为标量的类?我需要这个。

int
是一个C类型,不能直接用Objective-C引用类型表示

在我看来,您可以通过使用
NSNumber
来解决这个问题,它本质上是一个非常轻量级的Objective-C包装器,用于包装数值类型,例如
int
float

可选的,你可以使用C++模板并将它与Objy-C混合。我不知道它是如何工作的以及你可能会遇到什么样的限制,但是因为ObjultC++是一个东西,我想这是它可以使用的。


而且它看起来确实可以:提供了Objective-C++的介绍。事实证明,你可以在Objc类中有C++ IVAR,例如。p>
int
是一种C类型,不能用Objective-C引用类型直接表示

在我看来,您可以通过使用
NSNumber
来解决这个问题,它本质上是一个非常轻量级的Objective-C包装器,用于包装数值类型,例如
int
float

可选的,你可以使用C++模板并将它与Objy-C混合。我不知道它是如何工作的以及你可能会遇到什么样的限制,但是因为ObjultC++是一个东西,我想这是它可以使用的。


而且它看起来确实可以:提供了Objective-C++的介绍。事实证明,你可以在Objc类中有C++ IVAR,例如。p> 使用NSNumber是一个问题,因为它隐藏了有意义的信息,即它是什么类型的数字。假设您有10个枚举类型,并将它们全部存储在NSNumber中。然后,您会在代码的其他地方收到一个NSNumber。Xcode如何验证它是正确的枚举?它不能。(除非它很快,否则)@ DASJ C++模板是唯一可行的方法。对于Objective-C类,您不能。您能提供一个代码示例吗?我已经有几年没有使用Objective-C++了,使用NSNumber是一个问题,因为它隐藏了有意义的信息,即它是什么类型的数字。假设您有10个枚举类型,并将它们全部存储在NSNumber中。然后,您会在代码的其他地方收到一个NSNumber。Xcode如何验证它是正确的枚举?它不能。(除非它很快,否则)@ DASJ C++模板是唯一可行的方法。对于Objective-C类,您不能。您能提供一个代码示例吗?我做Objective-C已经有几年了++