Objective-C是否具有像C#这样的值/引用类型的概念?

Rob*_*b L 4 objective-c

根据谷歌的搜索,看起来它没有正式的价值/参考类型.如果它没有,那对应的是什么?它叫什么?它被称为'Obj-C类和非Objc-C类'还是'静态类型和动态类型'?

但是,对我来说,obj-c中的NSString对象'就像'在C#中的引用类型一样.它将导致编译错误"静态分配Objective-C类的实例..."如果没有'*'定义它

NSString * pstr = [[[NSString alloc] init] autorelease];
Run Code Online (Sandbox Code Playgroud)

一些原生类型,如NSInteger或C struct,可以在没有'*'的情况下创建,我可以说它在C#中的作用类似于值吗?

NSInteger i = 0;
Run Code Online (Sandbox Code Playgroud)

Gre*_*ker 5

所有Objective-C对象都由指针访问.从这个意义上讲,它们都是引用类型.

某些Objective-C类型将对象相等性(-isEqual:method)定义为指针相等之外的其他内容.这些类型表现为类似值的类型.这些类型包括NSString和NSNumber.

非Objective-C类的类型可以是C#意义上的真值类型.