pragma mark 常见错误
pragma mark 概念
/*
常见错误
1.只有类的声明,没有类的实现
2. 漏了@end
3. @interface 和 @implementation 嵌套
4. 成员变量 没有 写在括号里面
5. 方法的声明 写在了 大括号 里面
6. 成员变量 不能在 {} 中进行初始化, 不能被直接 拿出去访问
7. 方法不能当做 函数一样调用 (函数不能当做方法调用)
8. OC方法 只能 声明在 @interface 和 @end之间, 实现 在@implementation 和 @end之间。也就是说OC 方法不能独立与类存在
9. C函数 不属于类、 跟类没有联系,C函数只归 定义函数的文件所有
10. C函数 不能访问 OC对象的成员
11. 低级错误, 方法有声明, 但是显示的时候写成了 函数
12. OC 可以没有 @interface 同意可以定义一个类
13. 成员变量 不能使用 static关键字
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
@interface Person : NSObject
{
int _age;
// static int _ages; // 13. 成员变量 不能使用 static关键字
// -(void)test; // 5. 方法的声明 不能写在了 大括号 里面
}
//int _age; // 4. 成员变量 没有 写在括号里面
-(void)test;
@end // 3. @interface 和 @implementation 嵌套 (把声明的@end 写在@implementation 后面)
//-(void)test; 8.方法不能独立存在
@implementation Person
// 成员变量 也可以 写在实现里面
-(void)test
{
NSLog(@"test");
}
@end // 2. 漏写@end
//8.方法不能独立存在
//-(void)test
//{
// NSLog(@"test");
//}
// 10.C函数 不能访问 OC对象的成员
void test()
{
// _age = 100;// _age 这个属性 是存储在 类对象那一块存储空间 这里没有对象 就访问不了成员变量
}
#pragma mark main函数
int main(int argc, const char * argv[])
{
#warning 1.没有写实现的时候,出现下面的错误, 没有找到定义
Person *p = [Person new];
/*
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Person", referenced from:
objc-class-ref in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
*/
// tset(); // 7. 方法不能当做 函数一样调用
return 0;
}