OC自学的第一天

  • OC语言是完全兼容C语言的,所以OC的程序入口也是main函数
  • OC引入头文件的方式和C语言不同
    • OC的引入头文件的预编译指令是#import
    • C的引入头文件的预编编译指令是#include
    • #import可以自动防止文件内容被重复定义
    • #import的时候只要包含框架主头文件就可以使用整个框架的东西
  • OC语言的运行过程

    • 编写OC源文件: .m , .c
    • 编译:cc -c xxx.m, xx.c
    • 链接:cc xxx.o,xxx.o -fraemwork Foundation(只有在用到了Foundation框架才需要加上-fraemwork Foundation)
    • 运行: ./a.out
  • OC语言的输出语句是NSLog(@”“)

    • 这个函数的输出内容会自动换行
    • 在双引号前必须加上@
  • OC的基本数据类型和C语言基本相同,唯一一点区别就是多了BOOL类型
    • BOOL类型本质上是char类型
    • BOOL类型有只有两个返回值YES和NO
  • OC语言类的设计:
    • 类名
      • 类名的第一个字母必须是大写
      • 不能有下划线
      • 多个英文单词用驼峰标识
    • 属性
    • 行为(功能)
  • 类的声明
    • 用来声明对象的属性、行为
    • 用@interface 类名:NSObject @end
    • 在声明成员变量的时候必须用大括号括起来,要让对象调用到成员变量必须写上@public
    • 声明成员方法的时候必须以减号 - 开头;
    • OC方法中任何数据类型都必须用小括号()扩住
    • OC方法的小括号()扩住数据类型
@interface CarNSObject
{
    @public
    int wheels;
    int speed;
}
-(void) run;
@end
  • 类的实现
    • 用来实现@interface中声明的方法
    • 类的实现用@implementation @end来实现
    • 方法的实现(说清楚方法里面有什么代码)
@implementation Car
-(void) run
{
    NSLog(@"车子跑起来了");
}
@end
  • 在OC中,想要执行一些行为,就写上一个中括号[行为执行者 行为名称]
  • 利用类来创建对象
  • 创建一个对象:[类名 new],并且会返回对象本身(对象的地址)
  • 类的实质是一个结构体
  • 可以定义指针变量来指向类的对象
int main()
{
     Car *p = [Car new];
    Car *p2 = [Car new];
    p2->wheels = 5;
    p2->speed = 300;
    //给p所指向对象的wheels属性赋值
    p->wheels = 4;
    p->speed = 250;

    //给p所指向对象发送一条run消息
    [p run];
    NSLog(@"车子有%d个轮胎,时速为:%dkm/h",p->wheels,p->speed);
    return 0;
}

一些常见的错误如下

/*
    1.@interface@implementation不能嵌套
    2.方法声明在@interface,方法实现在@implementation
    3.有对象的时候才能访问成员变量
    4.在@interface的时候不允许给成员变量赋值,不能重复定义
    5.在@interface定义变量是,不能随便将成员变量当做C语言中的变脸来使用
        例: static int wheels;是不允许的
    6.没有内部方法,static不能修饰成员变量和成员方法
    7.程序运行从上往下,先声明后使用。
    8.函数和方法的区别:
    方法:
        *对象方法都是以减号开头 -
        *必须写在@interface@implementation*对象方法只能由对象来调用
        *对象方法归类\对象所有
    函数:
        *函数属于文件,可以写在文件的任意位置,但是不能写在@interface*函数不依赖于对象
        *函数内部是不能直接通过成员变量名访问某个对象的成员变量

 */
  • OC方法中一个参数对应一个冒号,其中冒号也是方法名的一部分
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页