OC语言day01-14常见错误

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;
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容