我想问一个关于Objective-C中的'Object'和'variable'的问题。正如我们所知道的,我们可以使用很多变量来存储对象的数据,但首先我们必须创建一个具有分配的对象。我们必须使用'alloc'关键字为RAM中的对象提供内存位置。我认为对象不能存储数据,因为对象是一个名词,就像一个人。所以,为了存储我们需要使用变量的数据。在C或C++中,我们使用任何原始数据类型的变量来存储数据。在Objective-C中,我们使用预定义的类如NSString
。Objective-C中'object'和'variable'的实际区别是什么?
所以,我可以使用一个变量与我的NSString
类类型,或者我将只使用一个类对象类。
对我来说有两个问题。
NSString *xyz = [[NSString alloc] init]; // can anyone tell me what should be 'xyz' in here a 'variable' or an 'object'?
如果'xyz'是这里的一个对象。所以,首先我必须创造它。但我曾经见过的某处......
NSString *xyz = @"welcome"; // according to me, here we are not allocating memory for 'xyz'. Why?
这两个声明有什么区别?你能告诉我吗?
在你正在分配内存给xyz的声明中! –
* xyz是一个指针,你正在做[nsstring alloc] init],因为你告诉编译器xyz现在是一个新的字符串! LATER上你可以使用xyz作为nsstring,但不能* xyz !!!!!! –
您应该阅读关于堆,堆栈和内存分配的一般信息。从C开始。 – FreeNickname