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”是方法名。