我在xCode中进行了“构建和分析”,在我的初始化方法中将一个普通的int设置为0时,出现了“空指针解引用”的错误。我在下面的代码中注明了出错的行数。我正在开发iPhone应用。
Bric.m
Bric.m
#import "Bric.h"
@implementation Bric
- (id)initWithImage:(UIImage *)img:(NSString*)clr{
if (self = [super init]) {
image = [[UIImageView alloc] initWithImage:img];
}
stepX = 0; //It's for this line I get the message
stepY = 0;
oldX = 0;
color = [[NSString alloc]initWithString:clr];
visible = YES;
copied = NO;
return self;
}
@end
Bric.h
#import <Foundation/Foundation.h>
@interface Bric : NSObject {
int stepX;
int stepY;
}
-(id)initWithImage:(UIImage *)img:(NSString *)clr;
@end
这不是完整的代码,我只粘贴了我认为有用的部分。
既然我没有使用指针,我觉得这很奇怪。为什么我会收到这个消息?
谢谢和问候, 尼克拉斯
self = [super init]
,然后将结果作为布尔值进行评估。使用新的LLVM编译器,在if语句中没有双括号的赋值会生成一个警告,因为编译器会“智能地”询问您是否意味着使用==
而不是=
(当执行类似于if (x == 5)
的操作时,这是一个常见的错误)。 - Jasarien