Par*_*lia 5 iphone xcode objective-c ios
我正在学习Objective C,并在阅读方法时注意到这个时髦的怪癖.
像Java和C++一样,Obj.C可以接受多个参数,这很好,但是它声明客观的C方法可以有多个名称,这些名称似乎并不适合我.
例如:
-(NSArray *)shipsAtPoint:(CGPoint)bombLocation withDamage:(BOOL)damaged;
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,有两个参数,bombLocation(返回类型CGPoint)和损坏的(返回类型BOOL),并且方法名称旁边似乎被拆分为shipatpoint:withDamage
我不明白这是什么...当它声明一个方法可以有多个名字时它意味着什么?这仅适用于需要多个参数的方法吗?或者,假设我想用单个名称命名我的方法,但是为它提供了多个参数,是可能的还是我必须为它提供多个名称,每个名称对应一个参数?如果是,那为什么呢?
感谢您与我的混乱!:)
原因是让它更容易理解.
在您的示例中,该方法在C++中将是这样的:
int shipsAtPointWithDamage (CGPoint bomb, BOOL damage) //I don't really know C++
Run Code Online (Sandbox Code Playgroud)
好的,所以第一个参数是船的点,损坏是第二个参数.这很容易弄清楚,但是那就是事情,你必须弄清楚,你必须看看方法来尝试找出每个东西是什么.
在Objective-C中你有
-(NSArray *)shipsAtPoint:(CGPoint)bombLocation withDamage:(BOOL)damaged;
每个参数都有明确的定义,第一个是船的点,第二个是损坏. 它读起来就像一个句子,而使用C++(以及几乎所有其他语言)则不然.
如果你想让一个方法在Obj-C中有多个参数,你必须这样写:
-(returnType)paraOne:(type*)name paraTwo:(type*)name
这是需要习惯的东西,每种语言都不同.一旦你习惯了Objective-C做事的方式,你会认为这绝对是太棒了.
编辑:并且正如filipe所指出的,因为该方法作为多个参数并不意味着它有多个名称,在我上面给出的示例中,方法名称将是paraOne:paraTwo,NOTparaOne:
| 归档时间: |
|
| 查看次数: |
438 次 |
| 最近记录: |