• Objective C


    Objective C

    一、OC简介

      1>OC语言在C语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用C,甚至是C++代码。

      2>可以使用OC开发Mac OS X平台和iOS平台的应用程序。

      3>拓展名:C语言-.c  OC语言-.m  兼容C++ -.mm

      友情提示:其实C语言和OC,甚至任何一门语言都只是我们为了实现一些功能,达到一些效果而采用的工具,抛开语法的差别外,我想最重要的应该是在解决问题的时候考虑的角度和方法不一样而已,然而这也构成了学习一门语言的重要性。

    二、语法预览

    (一)关键字

      基本上所有的关键字都是以@开头的(为了与C语言的关键字区分开来),如@interface  @implementation  @public等,少部分没有以@开头,如id,_cmd等

    (二)字符串以@开头

      C语言字符串:“hello”

      OC语言字符串:@“hello”

    (三)其他语法

      1>基本类型:5种,相比C语言增加了布尔类型,id类型

      2>BOOL (YES/NO)    id类型:可以存储任何类型的对象

      3>nil相当于是null,也就是0。

      4>屏幕输出:NSLog(@“hello”);//相比C语言的printf会增加时间跟进程信息,并且会自动换行

    NSLog(@“age is %d”,26);

    三、OC程序开发过程

      1>程序编译链接过程:

        源文件(.m)---编译(检查语法的合法性)---->目标文件(.0)-----链接(将相关的系统函数等其他资源链接起来)---->可执行文件(.out)

      2>#import预处理指令有两个作用:(1)与#include一样,拷贝文件内容(2)可以自动防止文件的内容被重复拷贝

      3>Foundation框架:

        如果要使用框架中的所有头文件那么应该怎么办?

        包含框架的主头文件,主头文件是一个框架中最主要的头文件,每个框架的主头文件名和框架名一致。eg:  #import<Foundation/Foundation.h>

      4>运行过程如下:

        (1)编写OC源文件  .m .c

        (2)编译文件  cc -c xx.m  xxx.c

        (3)链接  cc xx.o xxx.o  -framework Foundation

        (4)运行 ./a.out

    四、宏定义

        格式:#define 语句

        用途:给符号名称指定程序常量,放在程序的开始,但是要在#import的后面

          注意:定义的常量最好都要大写

    eg:

    #import <Foundation/Foundation.h>
    #define kMultiply(num1,num2) (num1)*(num2) //两个数的乘积
    int main(){
    
    
      int multiply=kMultiply(5+5,10+10); //乘法高于加法
      NSLog(@"%d",multiply);
    
      return 0;
    }
    #import <Foundation/Foundation.h>
    #define kSum(num1,num2) (num1*num1)+(num2*num2) //两个数的平方和
    int main(){
    
      int sum=kSum(2,2);
      NSLog(@"%d",sum);
    
      return 0;
    }
    #import <Foundation/Foundation.h>
    #define kMax(num1,num2) num1>num2?num1:num2 //两个数的最大值
    int main(){
    
      int max=kMax(1,3);
      NSLog(@"%d",max);
    
      return 0;
    }
  • 相关阅读:
    ZMQ面面观
    windows10系统右键新建菜单的自定义
    元组,列表,字典前加*
    HTTP状态码(转)
    字符串利用%02d将月份前加0
    python中while与else的联姻
    sys.argv
    pandas的read_csv踩到的坑
    wireshark抓包总结
    bcolz
  • 原文地址:https://www.cnblogs.com/my-garden/p/5425449.html
Copyright © 2020-2023  润新知