objective-c - Objective-C 中指向对象的方法

标签 objective-c pointers object methods

我使用 spriteclass 创建了一些 Sprite ,并将它们加载到一个数组中。在我的应用程序中,我循环遍历数组检查特定条件(位置等)。我想创建一个爆炸方法,我可以将其中一个对象传递给该方法,然后使用指针拉动该对象在屏幕上的位置并在那里显示爆炸。我不知道如何将数组中的指针/对象传递给要使用的方法。

这基本上是我的想法:

for (int i=1; i<4; i++) {

    EnemySprite *currentenemy = [enemies objectAtIndex:i-1];

    //Blow this guy up
    [self explosion:currentenemy]
}


-(void)explosion someobject {

    explosion.position = someobject.position

    someobject.setHidden=YES;

}

最佳答案

对于一个参数你可以这样写

// definition
-(void) explosion:(EnemySprite*) someObject
{

}

// usage
[self explosion: object];

对于两个参数,事情有点复杂。考虑一下;

// definition
-(void) explosion:(EnemySprite*) someObject radius:(float)explosionRadius
{
  ...
  if (pos < explosionRadius)
  ...
}

// usage
[self explosion: object radius:10.0f];

: 之前的所有内容都用于外部名称,之后的所有内容都是函数内部的名称。

这就是为什么你经常会看到 Objective-C 函数的函数名以第一种类型的名称结尾:

-(void) explodeSprite:(EnemySprite*) sprite radius:(float)radius;

在编写函数时, Sprite 和半径参数似乎都已“命名”;

[self explodeSprite:sprite radius:10.0f];

关于objective-c - Objective-C 中指向对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/647028/

相关文章:

objective-c - NSPredicate,无法解析格式字符串

ios - 如何使用 CodeRunner 编译 SecureUDID

c - C 中的指针和变量

Javascript 公共(public)成员无法访问

javascript - 比较数组与 JavaScript 或 jQuery

ios - 在 UIWebView 中加载离线内容

objective-c - 具有可编辑内容的 NSTreeController

c - 为什么C中的箭头(->)运算符存在?

c - 如果一个指针的地址是 64 位,为什么它在打印时显示为 6 个字节?

javascript - 为什么 javascript 的警报显示数组和对象的奇怪值?