zoukankan      html  css  js  c++  java
  • oc基础第一天---c语言与oc语言对比

    一 . 基础oc语法

      1. 源文件后缀名

         C程序的源文件的后缀名为.c

         OC程序的源文件的后缀名为.m   message. 消息机制.

         OC是完全兼容C语言的. 所以在.m文件之中是可以写任意的C代码的

         .m文件中. 可以写OC代码、C代码、C++代码.

      2. main函数仍然是OC程序的入口和出口.

         返回值代表程序的结束状态.

         参数可以接收用户的数据.

         也可以不带参数.

      3. #import指令.

         1). 这是1个预处理指令. 会在编译之前执行.

         2). 作用: 是#inlcude指令的增强版.

                  在预编译的时候,将后面的文件的内容拷贝到写指令的地方.

         3). 增强: 同1个文件无论import多少次,都只会包含1次.

         4). 如果要使用#Inlcude指令!来实现这个效果的话 就会比较麻烦了.

             必须要配合#ifndef指令来实现.

         5). #import指令的原理: 在包含1个文件的时候. 底层会先判断这个文件是否被包含.

             如果被包含就会掠过  如果没有包含才会包含.

             不需要使用条件编译指令.

         6). import指令的用法

             #import "路径" 先找当前源文件所在的目录 没有再去Xcode编译器目录之中查找.

             #import <路径> 直接找Xcode编译器目录.

            如果是我们自己的文件.别乱放 是放在当前源文件所在的目录下.

            "" 包含自己的文件

            <> 包含系统的文件.

      

       4. 框架

          苹果或者第三方事先将一些牛X(常用)的功能写好. 把这些功能模块封装在1个1个类之中.

          把这些功能提供给大家用. 这些类的集合就叫做框架.

          框架说白了就是1个功能集合. 这些功能是苹果或者其他高手写的.我们要用直接调用就可以了.

          相当于C语言中的函数库.  Location.......

          Foundation框架: 

          

          提供了一些OC最基础的功能. 数据类型的支持、输入输出.....

          Foundation.h的地址:

         /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Foundation.framework/Headers

         Foundation.h这个文件中包含了所有的Foundation框架中的头文件.

         所以,我们只要包含这个头文件 就相当于将所有的Foundation框架中的头文件都包含了.

         所以,我们这么一写 就可以直接使用Foundation框架中的所有的东西了.

      5. @autoreleasepool 这是1个自动释放池

         1)  可以将代码直接写在池子之中.

         2)  也可以删除 目前为止不会有影响.

      6. NSLog函数.

         1). 是printf函数的增强版.

         2). 作用: 向控制台输出信息.

         3). 增强的地方.

             a. 自动换行,不需要去追加' ' NSLog函数在输出完毕信息之后 会自动的换行.

             b. 在输出信息的同时 还会输出一些与程序有关的其他信息.

                -> 显示执行这句代码的时间 具体到毫秒.

                -> 显示这句代码是由那1个程序来执行的.

                -> 程序运行的时候的进程ID PID

                -> 线程ID。

                -> 最后面才是我们输出的信息.

            

         4).printf支持使用格式控制符.NSLog函数支持printf函数的全部的格式控制符 并且使用方法都是一样的.

         5).注意

            a. NSLog函数的字符串参数前面必须要加1个@符号.

            b. NSLog函数默认会在输出完毕信息之后换行.

               如果我们在字符串的后面手动的加了' ' 这个时候NSLog函数的自动换行就会失效.

         6).从今以后, 忘记printf函数 使用NSLog函数.

      7. OC中的字符串.

         1). C语言的字符串的存储方式.

             a. 使用字符数组来存储

                char str[] = "jack";

             b. 使用字符指针来保存存储在常量区字符串的地址.

                char *str = "rose";

         

         2).OC中专门的设计了1个新的类型来保存字符串。对应我们而言无需关心内部是如何实现的.

            设计了1个NSString类型的指针变量. 用这个指针变量来保存字符串的地址.

            

            OC中的字符串常量必须加1个前缀@符号.

            @"jack"  @"rose"  @"北京我爱你" 是OC的字符串.

            "@jack" 这是C语言的字符串. OC的字符串常量的@符号是写在双引号外面的.

             "jack" "rose" "北京欧你还敢" 这是C语言的字符串.

            OC的字符串常量使用NSString类型的指针变量来保存地址.

         3). NSString类型的指针变量只能保存OC字符串。为其赋的字符串必须加前缀@符号.

             不能保存C语言的字符串.

         4). 使用%@格式控制符 输出 NSString 类型的字符串.

         5). NSLog函数的第1个参数是1个NSString类型的 所以字符串只能给1个OC字符串,不能给1个C语言字符串.

     8. NS前缀

        1). NextStep --> Cocoa   实际上是NeXT公司开发的.

           

            为了区分这些东西的前身是NextStep 就为他们家了1个前缀NS

     9. @符号.

        1). 将C语言的字符串转换为OC的字符串.

            "jack"

            @"jack"

        2). OC中新增的关键字绝多部分都是以@开头.

            @autoreleasepool

            @interface

            @implementation

            @public

            @protected

            .........

     10. 注释

         与C语言一模一样.

     11. 函数的定义与调用.

         与C语言一模一样.

  • 相关阅读:
    API学习
    某社区的常用免费图床 free image hosting websites,如何用Ruby与Perl启动浏览器, 打开指定网页
    Delphi7下SuperObject的JSON使用方法
    Delphi中使用ISuperObject解析Json数据
    Delphi 数据存储到oracle数据库TBLOB/TCLOB的方法 包括JSON串的解析
    Delphi7 JSON的读取和拼接
    SQL查看所有表大小的语句
    ora12541监听程序无法识别连接
    oracle新建用户类问题
    Delphi版本插值Lagrange
  • 原文地址:https://www.cnblogs.com/qjrz/p/4649887.html
Copyright © 2011-2022 走看看