Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 表达式-(someClass*)methodName在目标C中的含义_Objective C_Pointers_Instance Methods - Fatal编程技术网

Objective c 表达式-(someClass*)methodName在目标C中的含义

Objective c 表达式-(someClass*)methodName在目标C中的含义,objective-c,pointers,instance-methods,Objective C,Pointers,Instance Methods,表达的意思是什么: -(someClass *)someName; 你会如何用通俗易懂的英语阅读/描述它 为什么我们要把*放在括号里,而不是放在某个名字前面 我们是按这个*还是按那个语法分配对象 这是一个“铸造”的案例吗 强制转换和返回指针之间有区别吗?这是方法返回值的Objective-C语义 这: 意味着调用someName将返回指向someClass对象的指针 例如: someClass *myClass = self.someName; -(int)someName; //retu

表达的意思是什么:

-(someClass *)someName; 
你会如何用通俗易懂的英语阅读/描述它

为什么我们要把*放在括号里,而不是放在某个名字前面

我们是按这个*还是按那个语法分配对象

这是一个“铸造”的案例吗


强制转换和返回指针之间有区别吗?

这是方法返回值的Objective-C语义

这:

意味着调用someName将返回指向someClass对象的指针

例如:

someClass *myClass = self.someName;
-(int)someName; //returns an integer
-(int *)someOtherName; //returns a pointer to an integer

-
将方法标识为实例方法,而
+
将方法标识为类方法

返回数据类型是括号内的部分。不能按值返回对象,因此必须返回指向对象的指针,因此括号内有
*
。您正在将
指针返回到
someClass

方法名称的开头在括号后面

您可以调用这个方法
someName
,它返回一个指向
someClass
对象的指针,它是一个实例方法

如果要返回基本数据类型,则不需要
*
,因为您可以返回基本数据类型。但是,您仍然可以返回一个指向基元数据类型的指针,在这种情况下,您需要
*

例如:

someClass *myClass = self.someName;
-(int)someName; //returns an integer
-(int *)someOtherName; //returns a pointer to an integer

为什么不在提出这样的问题之前打开Objective-c维基百科页面呢?这是一个方法签名。您应该像在C中一样阅读它。
SomeClass*someName()
在目标C中,该表达式可以在接口或头文件(someFile.h)中找到,它是稍后在实现文件(someFile.m)中定义的方法的接口声明。。。“-”减号表示它是要在对象实例上调用的实例方法。“(someClass)”是该方法的返回类型,星号“”表示该方法将返回指向“someClass”对象的指针。最后,“someName”是方法名。