———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
**类使用的常见错误汇总**
1.类的声明和实现中不允许包含嵌套
@interface Car : NSObject
//不允许这样嵌套,错误
@interface Dog:NSObject
@end
@end
@implementation Car
@end
2.不能用@implementation 去替换@interface
//@implementation不能替换@interface,会出现警告,不能这样写
@implementation Car : NSObject
{
@public;
int _lunzi;
}
@end
3.漏写end(初学者容易犯的错误)
@interface Car : NSObject
{
@public;
int _lunzi;
}
//漏写了end 错误
@implementation Car
//漏写了end错误
4.@interface和@implementation之间可以穿插类,即顺序可以打乱,但类的实现要在声明之后
@interface Car : NSObject
{
@public;
int _lunzi;
}
@end
//可以穿插其他类
@interface Dog:NSObject
@end
@implementation Dog
@end
//可以穿插类
@implementation Car
@end
5.实例变量没有写在{}之中
@interface Car : NSObject
{
@public;
}
int _lunzi;//错误,实例变量没有写在{}之中
-(void)stop;
@end
@implementation Car
NSLog(@"车停了");
@end
6.方法的声明写在了{}之中
@interface Car : NSObject
{
@public;
int _lunzi;
-(void)stop;//错误,方法的声明写在了{}之中
}
@end
@implementation Car
NSLog(@"车停了");
@end
7.声明实例变量是不能初始化实例变量的
@interface Car : NSObject
{
@public;
int _lunzi=3;//错误声明实例变量的时候不能初始化实例变量的值
}
-(void)stop;
@end
@implementation Car
NSLog(@"车停了");
@end
8.方法不能像函数那样调用
//函数的调用方法
stop();
//方法的调用方法
[car stop];
9.实例变量和方法不能用static等关键字修饰
注意:别和c语言混淆就好了
10.类的实现可以写在main函数之后
#import <Foundation/Foundation.h>
@interface Car : NSObject
{
@public;
int _lunzi;
}
-(void)stop;
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Car *c=[Car new];
c->_lunzi=4;
NSLog(@"%d",c->_lunzi);
return 0;
}
//方法的实现可以在main函数之后
@implementation Car
NSLog(@"车停了");
@end
11.方法定义了,没有在类的实现中实现
@interface Car : NSObject
{
@public;
int _lunzi=3;值
}
-(void)stop;
@end
@implementation Car
//方法定义了,但是没有在方法中实现,在调用方法的时候会报错
@end