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的过程了,相关内容很容易找到。
进入Mac系统后,需要安装XCode,这是iOS程序开发的IDE,此时我们可以注册为Apple的开发者,申请一个免费的ID后就可以在Apple开发者网站下载XCode了。
打开XCode后,选择XCode,打开Preferences,选择Download选项卡,如下图所示。在这里我们需要可以安装Command Line Tools。之后我们就可以在Terminal中来编写代码,当然也可以直接使用XCode IDE。
打开终端Terminal,创建一个文件夹来作为我们程序开发的文件夹,然后创建我们的一个O-C文件first.m,如下图所示:
之后编写如下所示的代码:
这是我们的第一个程序,暂时不讲解各行代码的含义,先运行出结果。那么按如下所示操作:
编译后没有任何问题,那么就直接执行程序即可。我们得到了一行输出,可以看上图所示内容。同时在Progs文件夹中,我们看到了可执行文件的生成:
此时点击-first,那么就会启动程序,得到如下内容:
这个输出和我们上面得到的是一样的。
下面我们来解释第一个程序,逐行来看:
#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:
选择第一项Create a new XCode project,然后弹出如下窗口,我们继续设置:
这里我们选择Command Line Tool,也就是控制台的程序,点击Next继续:
为我们的应用项目命名,然后选择Type为Foundation,其含义之前都说过了,然后点击Next继续:
选择我们项目的存放位置,这里使用默认的位置-桌面,之后点击Create创建项目,那么我们在XCode中就得到了一个系统自动为我们生成的项目Prog1:
打开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按钮来运行程序:
编译成功后会得到输出,就是一句Hello World!我们修改源代码再做一组测试:
代码如下:
#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中运行后,我们得到如下输出:
这里就使用了NSLog函数的参数列表输出功能,%i表示此位置输出的是整型,那么后面的参数会按照位置顺序来填充到相应的位置中去。就得到了我们想要的结果。
接下文
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4663/1690ab0c-83f2-3481-8eef-2851174db63f-thumb.png)
- 大小: 216.1 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4665/4ed4137f-b78f-3e3c-b71a-7a66bf77a355-thumb.png)
- 大小: 69.1 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4667/d983ceaf-6bcb-3bc7-9dcc-1f451b19bcb8-thumb.png)
- 大小: 43.2 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4669/ec9d4ce4-a2b1-3f69-ba92-e53c7de64905-thumb.png)
- 大小: 40.9 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4671/015e6ff2-91a9-3986-bdad-931328fe83b2-thumb.png)
- 大小: 66.5 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4673/7ab712d4-4027-31ab-b4ca-459129fe192c-thumb.png)
- 大小: 43.7 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4675/6afc448b-3794-3e55-9520-674a4c24cc08-thumb.png)
- 大小: 42.4 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4677/e656ecc7-31dc-3f01-b83c-125b711b2370-thumb.png)
- 大小: 124.6 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4679/72cf9a9b-99d6-3c2c-ad75-a43e9b4da247-thumb.png)
- 大小: 138.6 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4681/e51a448e-1219-3c67-9e2f-823ab9a57964-thumb.png)
- 大小: 136.8 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4683/1cdfa3f2-e8a9-385a-b1c4-acbefb284e9d-thumb.png)
- 大小: 60.2 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4685/53af4636-4dae-3bc8-b0f7-e15999910dcc-thumb.png)
- 大小: 75.1 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4687/9948dee4-b86c-35a4-b29c-bc07f27ab442-thumb.png)
- 大小: 49 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4689/655cfcab-f265-39d5-9b6f-67cf68a63066-thumb.png)
- 大小: 57 KB
![点击查看原始大小图片](http://dl2.iteye.com/upload/attachment/0078/4691/fa84d11b-c3f4-370e-a33e-07e9591f3934-thumb.png)
- 大小: 51.6 KB
分享到:
相关推荐
1. HelloWorld:创建第一个Objective-C程序,了解基本的语法和工程结构。 2. 简单应用:尝试开发一个简单的macOS或iOS应用,如计时器、计算器等,加深对语言特性的理解。 3. 深入学习:逐步学习Cocoa或Cocoa Touch...
**实战案例**:通过一个简单的iOS应用案例(如记事本应用),逐步演示如何使用Objective-C进行开发,包括UI设计、逻辑处理、数据持久化等各个环节。 - **界面设计**:使用Storyboard或Interface Builder设计用户...
在讨论iOS学习笔记之前,首先应当明确iOS开发的核心要素。iOS是苹果公司为其移动设备设计的操作系统,与之对应的开发语言主要是Objective-C以及近年来流行的Swift。Objective-C是一种成熟稳定的语言,它以C语言为...
这份学习笔记涵盖了C语言的基础、高级、系统和工具四个部分,旨在帮助读者全面理解和掌握C语言的各个方面。 **第一部分:语言** 1. **数据类型**: - `char`: 8位有符号整数,可表示ASCII字符。 - `short`: 16位...
### 基于Xcode4.3的iPhone编程学习笔记:HelloWorld #### 第一篇:HelloWorld编程 本文档旨在帮助初学者理解如何通过Xcode 4.3环境搭建简单的iOS应用程序,具体以HelloWorld应用为例,从创建工程到运行程序进行...
**2.3 你的第一个cocos2d游戏实例【代码】** - **教程来源**:http://down.51cto.com/data/130517 - **核心内容**:详细介绍了如何使用cocos2d游戏引擎开发iOS游戏,包括游戏逻辑设计、图形渲染、物理引擎使用等。 ...
- `iPhone 开发教程源码( BeginningiPhoneDev )`、`iPhone应用程序编程指南 - 中文版`和`iPhone 教程- 开发笔记`提供实践指导,涵盖从安装开发环境到编写第一个应用的全过程。 - `斯坦福大学 iPhone开发教程`...
- **学习Swift或Objective-C**:iOS开发主要使用Swift(推荐)或Objective-C编程语言,因此,熟悉其中至少一种是必要的。 - **模拟器与真机测试**:Xcode内置的模拟器可用于快速测试应用,但最终还需要在实际设备...
- **《Objective-C.2.0程序设计》电子书下载**:进一步深入Objective-C语言的学习资料。 - **《Objective-C基础教程》中文影印版**:提供了另一种学习Objective-C的方式。 - **iphone开发经典效果【源码】**:收集了...
4. **第一个Python程序**: - **交互式命令行**:Python有一个内置的交互式解释器,允许用户直接输入并立即执行Python代码。虽然这种方式方便快捷,但无法保存代码,需要每次重新输入。 - **文本编辑器**:通过...
"IOS学习笔记补充1"是对前期学习内容的进一步丰富和完善,旨在帮助开发者更好地理解和掌握iOS开发的关键知识点。这份笔记不仅适用于初学者,对于有一定经验的开发者来说,也是一个有价值的参考资料。 在iOS开发中,...
【描述】"IOS应用源码——ProjectPaper-ProjectPaper-e6d276f.rar" 描述简明,主要强调了这是针对iOS平台的一个名为ProjectPaper的应用程序的源代码。"ProjectPaper"可能是应用的名字,暗示这可能是一个与学术、笔记...
iTween研究院之学习笔记Move移动篇(一) Android研究院之应用程序对话框大合集(一) Cocos2D研究院之构建游戏开发环境(一) Direct3D研究院之创建第一个DirectX3D项目(一) NGUI研究院之开始学习制作第一个...
Swift-Vesper是由知名软件开发团队Q Branch创建的一款专为iOS设计的记笔记应用程序。这个项目是用Apple的现代化编程语言Swift编写的,提供了一个完整的、功能丰富的用户体验,旨在帮助用户方便地记录、组织和查找...
在Xamarin中开发iOS应用程序,理解程序的启动过程至关重要,因为这关系到应用的性能优化、用户体验以及问题排查。在本学习笔记B02中,我们将深入探讨Xamarin.iOS下的应用启动机制,主要包括以下关键知识点: 1. **...
在企业级iOS应用开发实践中,第5章通常涵盖了多个关键知识点,这些都是构建高效、稳定且用户友好的应用程序所必需的。以下是对这些知识点的详细解释: 1. **Xcode使用技巧**:Xcode是Apple官方的集成开发环境(IDE...
"App"则表明这是一个实际运行的应用程序,而非仅仅是一段示例代码。 【压缩包子文件的文件名称列表】中只有一个条目:"Notebook(记事本)",这可能是项目的主要入口点,比如一个.xcodeproj文件,包含了整个工程的...
通过不断地学习新技术、积累实践经验,开发者能够不断提高自己的技术水平,开发出更加出色的应用程序。在这个过程中,保持好奇心和持续学习的态度至关重要。希望本文能够帮助读者更好地理解和掌握iOS开发的核心知识...
Objective-C是一种强类型、面向对象的语言,它在苹果的Cocoa框架下广泛用于iOS和Mac OS X应用程序的开发。开发者可以利用其强大的类库和内存管理机制来构建高性能且用户友好的应用。 在Voice2Note中,我们可能看到...