zoukankan      html  css  js  c++  java
  • Objective-C基础学习笔记(一)-程序整体语法结构

    一、Objective-C概述
         1.  Objective-C起源

              Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的、可移植的 C 语言与优雅的 Smalltalk 语言结合在一起。Objective-C 是 C  语言的一个扩展集,它以 C 语言为基础。。 

         2. Objective-C用途

             编写iOS操作系统(如:iPhoneiPod touchiPad 等苹果移动终端设备 )应用程序和MacOS X操作系统应用程序的利器。
         3. Objective-C与C语言的关系

            1)Objective-C的内核是C语言的,它在c语言的基础上增加了一层面象对象的语法;

            2)OC完全兼容C语言,可以在OC代码中混入C语言代码,甚至是C++代码;具体例子见下面-简单的OC程序

    二、Objective-C基本语法

           1. 关键字:OC基本上所有的关键都是以@开头,如下:

    @interface@implementation@end@public@protected@private@selector 这些都是OC的关键字

     2. 字符串: OC字符串也是以@开头,如下:

         @“This is a OC str ”是OC的字符串,而“This is a OC str ”就是C语言中的字符串了。

     3.基本数据类型:char、int、float、double、BOOL基本和C是一样的,

        3.1 关于OC的BOOL类型

         》BOOL类型的本质是使用8位存储,YES定义为1,NO定义为0,大于1不为YES,跟标准C不同

     

                       typedef signed char BOOL;

                       #define YES (BOOL)1

                       #define NO  (BOOL) 0

                 BOOL类型的输出应该当作整形使用例如:

                  NSLog(@"%d%d",YES,NO);

                 3.2  OC的nil类型:相当C语言的NULL类型,值为0;

       4. 基本语句:

        》循环:for 、while 、do while 

        》选择 :if 、if-else、 swich-case

      5.屏幕输出;NSLog相当于printf() ;

        NSLog(@"Hello OC %d",YES); 

      6.文件扩展名与注释

       》.h     OC头文件
      》.m     OC源文件


    三 .Objective-C程序体验

       1.简单的OC程序;

       功能:向屏幕输出一个字符串:Hello OC

    1   
    2 #import <Foundation/Foundation.h>
    3 int main()
    4 {
    5     NSLog(@"Hello OC ");
    6     return 0;
    7 }

     运行结果:

    nikodeimac:o1 niko$ ./a.out 

    2015-03-15 13:27:12.814 a.out[521:33569] Hello OC haha

    
    

    下面分别对这个OC程序做一个说明:

    1. 程序入口:

        跟C语言一样,OC程序的入口依然是main函数,只不过写到一个.m文件中。

    2. 头文件声明:#import 和C语言的#include 功能一样-拷贝某个文件的内容,但是比include强大的地方有

         可以自动防止文件内容被拷贝多次,之前的C中为了防止有文件被引用多次通常会加入以下代码

         也就以为着头文件中不用加入下面的预处理指令了:

     

    1  
    2  #ifndef      _XXX_H_
    3  #define      _XXX_H_
    4 /// ... ...
    5  #endif

     

     

    3. 屏幕输出函数--NSLog与printf的区别

     1》NSLog接收OC字符串作为参数即@" "形势的字符串而printf接收C的字符串作为参数即" "这种形势的。

     2》NSLog输出后会自动换行,而printf输出后不会自动换行。

     3》使用NSLog需要包含#import<Foundation/Foundation.h>头文件,使用printf需要包含stdio.h头文件。

    4. Foundation框架的作用如下;

    1》开发OC、iOS、Mac程序必备的框架此框架中包含了很多常用的API(应用编程接口)

    2》 框架中包含了很多头文件,若想使用整个框架的内容,包含它的主头文件即可 如下:

           #import <Foundation/Foundation.h>

    四.多个Objective-C源文件的编译、链接、运行的方法

        下面就以一个简单的程序说明验证:

        首先创建一个C源文件test.m,里面只有一个函数test,打印一句话,

    test.m
    1 #import <Foundation/Foundation.h>
    2 void test()
    3 {
    4    NSLog(@"调用了test.m 中的test函数 ");
    5 }
    test.h
    1 void test();

    在main.m 中调用test.m中的test函数

    1 #import "test.h"
    2 int main()
    3 {
    4     /* 调用另一个源文件的test 函数 */
    5     test();
    6     return 0;
    7 }

     编译链接运行:

    nikodeimac:o2 niko$ cc test.m main.m -framework Foundation

    nikodeimac:o2 niko$ ./a.out 

    2015-03-15 14:51:15.760 a.out[572:48618] 调用了test.m 中的test函数 

    从以上例子可以看出这和C语言的多文件开发是一样的。


         

        



              




  • 相关阅读:
    loj#6433. 「PKUSC2018」最大前缀和(状压dp)
    PKUWC2019游记
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    5. Longest Palindromic Substring
    4. Median of Two Sorted Arrays
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/jianghg/p/4417194.html
Copyright © 2011-2022 走看看