欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Objective-C学习笔记一:第一个应用程序

程序员文章站 2022-05-17 14:45:41
...
    iOS程序是基于Objective-C语言的,可以认为iphone SDK就是O-C上的各种框架的集合,O-C是学习iOS开发的基础,从基础做起是我们的研究之道。
    那么,学习Objective-C,第一步还是搭建开发环境。那么能有一台Mac是最好的,出于预算和学习的考虑,使用虚拟机安装Mac也是一个不错的选择。当然还有在Windows下安装Objctive-C编译器的方式,这个就不推荐了,至少使用虚拟机可以模拟出一个较为真实的环境。
    启动Mac或Mac虚拟机,进入Mac系统,这里仅仅是来研究O-C语言,那么使用虚拟机来完成。运行环境为VMware Workstation + Mac OS X 10.8。这里不再赘述虚拟机中安装Mac OS X的过程了,相关内容很容易找到。
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    进入Mac系统后,需要安装XCode,这是iOS程序开发的IDE,此时我们可以注册为Apple的开发者,申请一个免费的ID后就可以在Apple开发者网站下载XCode了。
    打开XCode后,选择XCode,打开Preferences,选择Download选项卡,如下图所示。在这里我们需要可以安装Command Line Tools。之后我们就可以在Terminal中来编写代码,当然也可以直接使用XCode IDE。
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    打开终端Terminal,创建一个文件夹来作为我们程序开发的文件夹,然后创建我们的一个O-C文件first.m,如下图所示:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    之后编写如下所示的代码:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    这是我们的第一个程序,暂时不讲解各行代码的含义,先运行出结果。那么按如下所示操作:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    编译后没有任何问题,那么就直接执行程序即可。我们得到了一行输出,可以看上图所示内容。同时在Progs文件夹中,我们看到了可执行文件的生成:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    此时点击-first,那么就会启动程序,得到如下内容:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    这个输出和我们上面得到的是一样的。
    下面我们来解释第一个程序,逐行来看:#import <Foundation/Foundation.h>,这句话会告诉O-C编译器(示例中使用的是LLVM Clang Objective-C)找到并处理头文件Foundation.h,这是一个系统的头文件,因为后续要使用其中定义的类或函数,所以必须导入。#import表示将该文件导入到当前程序中,可以类比Java中的import导包语句。
    接下来是主函数声明:int main (int argc, const char * argv[]),主函数表示程序从这里开始执行,这在C/Java中都是一致的,只是函数的参数略有不同罢了,其返回值为int型。
    下面进入主函数体部分,第一句是@autoreleasepool{},字面含义是自动释放池,也就是说其中的语句会放到自动释放池的语境中执行。自动释放池机制可以在创建新对象时,系统可以有效管理所使用的内容。关于其具体内容这里先不解释。
    在自动释放池中只有一条语句:NSLog(@"Hello World!"),这是一个函数调用,NSLog函数接受了参数@"Hello World!",这里的@表示字符串类型为NSString,如果不加@,那么就是普通C类型的字符串。NSLog是一个系统函数,它会输出其参数或者参数列表中的内容。
    main函数中最后一句是return 0,这是主函数声明时需要的返回值,在这里0表示程序正常结束。
    使用clang编译Objective-C程序时,需要使用-framework来指定我们使用的库Foundation,-o表示生成目标文件的名称,我们设置为-first,那么成功编译后,我们就看到了生成的可执行文件,在Terminal中使用./-first来执行程序就会得到输出,当然也可以点击可执行文件来打开它。
    下面来看怎么在XCode中创建项目,首先打开XCode:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    选择第一项Create a new XCode project,然后弹出如下窗口,我们继续设置:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    这里我们选择Command Line Tool,也就是控制台的程序,点击Next继续:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    为我们的应用项目命名,然后选择Type为Foundation,其含义之前都说过了,然后点击Next继续:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    选择我们项目的存放位置,这里使用默认的位置-桌面,之后点击Create创建项目,那么我们在XCode中就得到了一个系统自动为我们生成的项目Prog1:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    打开main.m,这个O-C源文件是系统自动为我们生成的,可以看到其内容在XCode环境中已经高亮显示了,我们来看一下完整的代码:
//
//  main.m
//  Prog1
//
//  Created by Nan Lei on 12-12-25.
//  Copyright (c) 2012年 Nan Lei. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        
        // insert code here...
        NSLog(@"Hello, World!");
        
    }
    return 0;
}

    这里系统为我们加了很多注释,在O-C源代码中使用注释和C语言是一样的,就是单行的双斜杠//和多行的/* ... */注释段。主体程序和我们之前编写代码是完全一致的,在XCode中点击XCode左上方的Run按钮来运行程序:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    编译成功后会得到输出,就是一句Hello World!我们修改源代码再做一组测试:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    代码如下:
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    
    @autoreleasepool {
        
        // insert code here...
        NSLog(@"Programming in Objective-C is fun!");
        NSLog(@"Testing...\n1.\n2..\n3...");
        
    }
    return 0;
}

    这里看到的结果是和C/Java中都是类似的,使用\n表示换行,那么得到的输出自然也是带换行的了。在学习C语言的过程中,认识了第一个程序,紧接着就是变量的表示了,那么在O-C中,变量的表示方法和C语言都是一致的,看如下的程序:
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    
    @autoreleasepool {
        int sum,v1,v2;
        
        v1=12;
        v2=25;
        sum=v1+v2;
        
        NSLog(@"The sum of %i and %i is %i",v1,v2,sum);
        
    }
    return 0;
}

    在XCode中运行后,我们得到如下输出:
Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
    这里就使用了NSLog函数的参数列表输出功能,%i表示此位置输出的是整型,那么后面的参数会按照位置顺序来填充到相应的位置中去。就得到了我们想要的结果。
    接下文
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 216.1 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 69.1 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 43.2 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 40.9 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 66.5 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 43.7 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 42.4 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 124.6 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 138.6 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 136.8 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 60.2 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 75.1 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 49 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 57 KB
  • Objective-C学习笔记一:第一个应用程序
            
    
    博客分类: 积少成多 objective-cxcodeappleios 
  • 大小: 51.6 KB