Has*_*ard 0 methods objective-c instance-method
你能帮助我快速理解一个概念,我无法理解从C到Objective-C的转换:
如果我有一个特定的实例方法,如下所示:
-(void)addOwnerNamesObject:(NSString *)n;
{
// ownerNames defined as NSMutableSet
[ownerNames addObject:n];
}
Run Code Online (Sandbox Code Playgroud)
我理解一些事情......
(void)InstanceMethod(Char *nameOfArgument)这是我需要帮助的地方:
NSString是该方法命名的实例n吗?最后......关闭主题
如果你有方法......
-(id)someMethod:(NSString *)pn
{
}
Run Code Online (Sandbox Code Playgroud)
感谢您帮助新手...非常感谢.
首先,您应该真正了解一下基本的Objective-C文档.
在Objective-C,一种方法可通过一个前面+或-符号.
+用于类方法,-例如方法.
然后你有返回类型,括号内和方法名称.
- ( int )foo;
Run Code Online (Sandbox Code Playgroud)
一个名为的实例方法foo,返回一个int.
类似的C函数是:
int foo( void );
Run Code Online (Sandbox Code Playgroud)
在Objective-C中,当您有参数时,方法名称有点特殊.
例如:
- ( int )foo: ( double )num;
Run Code Online (Sandbox Code Playgroud)
一个名为的成员方法foo:,返回int并接受一个double名为的参数num.
类似C函数:
int foo( double num );
Run Code Online (Sandbox Code Playgroud)
现在有多个参数:
- ( int )foo: ( double )num1 bar: ( float )num2;
Run Code Online (Sandbox Code Playgroud)
一个名为的成员方法foo:bar:,返回int并接受一个double名为num1的float参数和一个名为的参数num2.
类似C函数:
int foo( double num1, float num2 );
Run Code Online (Sandbox Code Playgroud)
关于你的问题id,它只是方法返回类型.
id是用于Objective-C实例的typedef.
基本上,它是一个void *.
id 确实表示任何类的Objective-C对象指针.