和Tom一起学习Objective-C 第一期

前言

这是一份学习OC的记录,同时也是方便监视自己学习OC。

本次学习基于《Objective-C程序设计 第六版》,这份记录里的内容可能和书里差不多,所以不要指望有什么高深的东西。

内容

Objective-C简介

我也就不多BB了,就这么介绍吧:Objective-C是一门面向对象的编程语言,由C语言改进而来,是iOS和Mac OS开发必须使用的语言。

基本操作

这个就不讲了,看书就好,毕竟不是面向纯小白的教程。总而言之,本教程的编程均在Xcode的环境下输入代码。(假设你懂的)

第一个代码

和学习C一样,学习OC的第一个代码自然也是Hello World了。

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
    }
    return 0;
}

我们来分析下这串代码并对比一下和C有和不同。
首先是#import<Foundation/Foundation.h>
学过C的肯定就认为这和#include<stdio.h>相似。
那么问题来了,既然是OC是根据C改进的,那么#import#include有什么区别?
答案是:#import#include的升级版,#import避免了重复引用的问题。
还要说的一点是<Foudation/Foundation.h>,这是一个系统文件,后面要学习的Foudation构架就是讲的这个文件。

接着就是int main(int argc, const char *argv[])
这里和C的main函数就差不多了,对于这个函数,记住以下几点:

  • int代表函数返回值的类型
  • main函数有且只有一个

然后就是@autoreleasepool
字面意思就是自动释放池,其机制就是:使得应用在创建新对象时,系统能够有效地管理应用所使用的内存。
这个我也不敢说太多,详情必须要学到后面才知道。我就根据我的经验来解释一下这句话:在开发过程中,有些对象的创建会占用大量的内存,有了这个autoreleasepool之后,一般情况下,是能比较安全地在对象使用后会释放掉内存。与之相对的,还有手动管理内存。
实际上,你不输入这个东西,这个代码也能运行。

还有就是NSLog(@"Hello world")
此处的NSLog()就和C中的printf()类似了,不过通过字面的意思,可以发现NSLog除了有打印功能以外,还有显示日志的功能,比如显示时间。

最后就是return 0
既然函数的返回值是int,我们就要在函数运行的后面返回一个int值以结束函数了。

本期就到此结束了,之后还有第一期的书后练习补充。

    原文作者:Tom就是my
    原文地址: https://www.jianshu.com/p/5c27421e8828
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞