在Objective-C 2.0中,是否可以创建一个参数是可选的方法?也就是说,您可以进行如下方法调用:
[aFraction print];
Run Code Online (Sandbox Code Playgroud)
以及:
[aFraction print: someParameter];
Run Code Online (Sandbox Code Playgroud)
在同一个程序中.
Apple的Objective-C 2.0编程语言指南将Obj-C与Python进行了对比,似乎说这是不允许的.我还在学习,我想确定.如果它是可能的,那么什么是语法,因为我的第二个代码示例不起作用.
更新: 好的,我刚刚制作了两个方法,都命名为"print".
头
-(void) print;
-(void) print: (BOOL) someSetting;
Run Code Online (Sandbox Code Playgroud)
履行
-(void) print {
[self print:0];
}
-(void) print: (BOOL) someSetting {
BOOL sv;
sv = someSetting;
if ( sv ) {
NSLog(@"cool stuff turned on");
}
else {
NSLog(@"cool stuff turned off");
}
}
Run Code Online (Sandbox Code Playgroud)
相关的计划行
...
printParamFlag = TRUE;
// no parameter
[aCodeHolder print];
// single parameter
[aCodeHolder print:printParamFlag];
...
Run Code Online (Sandbox Code Playgroud)
我无法相信这有效.我有什么理由不这样做吗?
我正在Objective C中编写一个C函数.我想要一个我最后一个参数的默认值.
我试过了:
foo(int a, int b, int c = 0);
Run Code Online (Sandbox Code Playgroud)
但那是C++
我也试过了
foo(int a, int b, int c)
{
...
}
foo(int a, int b)
{
foo(a, b, 0);
}
Run Code Online (Sandbox Code Playgroud)
但这也是C++.
有没有办法在Objective C中做到这一点?
可能重复:
Objective-C默认参数值
我找不到像在C++中通常那样为ios中的函数定义默认参数的方法.在iOS中可以吗?如果没有推荐的工作?