iOS:数组下标不是整数

时间:2014-01-31 20:48:25

标签: ios objective-c

我试图创建一个从顶部有一个下降图像的基本应用程序。然而,我似乎遇到了这个问题:

Array subscript is not integer

在我的.m中的这一行:

image.center = CGPointMake[image.center.x+pos.x, image.center.y+pos.y];

这是我完整的.m:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

-(IBAction)Start {
    timer = [NSTimer scheduledTimerWithTimeInterval:(0.10)
         target: self
         selector:@selector(onTimer)
         userInfo: nil repeats: YES];
}

-(void)onTimer {

    image.center = CGPointMake[image.center.x+pos.x, image.center.y+pos.y];
    pos = CGPointMake(0.0, 0.17);
}

- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

和我的.h文件是:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController {
    CGPoint pos;
    IBOutlet UIImageView *image;
    NSTimer *timer;
}

-(IBAction)Start;

@end

另外,您能告诉我如何使图像显示并落入应用程序中的随机位置吗?

2 个答案:

答案 0 :(得分:3)

[替换为(,将]替换为)

in

CGPointMake[image.center.x+pos.x, image.center.y+pos.y];

,因为

CGPointMake是一个函数,函数调用CGPointMake(...)总是使用括号而不是括号。

答案 1 :(得分:0)

CGPointMake是一个C函数。

它需要2个CGFloats作为参数,并返回一个CGPoint。

调用C函数的语法是

result = function(param, param);

函数名后面应加一个左括号,逗号分隔的0个或多个参数列表,以及一个右括号。

正如其他人已经指出的那样,你使用的是方括号而不是括号。