我试图创建一个从顶部有一个下降图像的基本应用程序。然而,我似乎遇到了这个问题:
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
另外,您能告诉我如何使图像显示并落入应用程序中的随机位置吗?
答案 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个或多个参数列表,以及一个右括号。
正如其他人已经指出的那样,你使用的是方括号而不是括号。