IOS编程教程:回到基础,介绍面向对象编程

如果你花了很长时间的跟着我这个教程,你知道我们已经走的相当远了。 现在,您应该能够构建一个iPhone应用程序,能使用标签栏(Tab Bat) 导航控制器(navigation controller) 和 表视图(table view) ,并使用故事板串连视图。 可能很多人会说,原来的详细视图太普通。 我们如何能显示更多的信息,包括图像吗? 如果你理解了教程,这应该不难,而且我有意地忽略了这部分一是演示需要,二是给你们更多创造空间,三是我偷懒了哈哈。

你有办法创建自己的菜谱应用的详细视图吗? 无论如何,我们将重新构建它,并向您展示如何完善详细信息页面。 但是在那之前,我不得不向你介绍面向对象编程的基本知识。 在后面的教程中,我们将完善详细信息视图屏幕。

不要害怕术语“面向对象编程”或简称OOP。 这不是一种新的编程语言,而是一个编程概念/技术。 当我第一次开始写iOS编程教程时我有意地忽略了OOP概念。 我是想让事情变得简单,只向您展示(即使你没有任何编程背景)如何创建一个应用程序。我不想把你被技术术语吓。 然而,我认为是时候介绍这个概念。 如果你还在阅读这篇文章,我相信你决定学习iOS编程,你想把你编程水平提升到下一个级别。  

好吧,我们开始吧。

面向对象编程——一些理论

objective - c被认为是一个面向对象编程(OOP)语言。 面向对象程序设计是一种构建软件应用程序的方法。 换句话说,大部分代码编写的应用程序是在某些方面处理某种类型的对象。 UIViewController,UIButton,UINavigationController和UITableView是一些iOS SDK对象。 你不仅可以使用在你的iOS应用程序内置的对象,您也可以使用已经创建了的一些自己的对象,如RecipeDetailViewController和SimpleTableCell等。

那么为什么要OOP吗? 一个重要的原因是,我们想把复杂的软件(或构建块)分解成小块,以更容易开发和管理。 在这里,小块就是对象。 每个对象都有自己的责任,为了使软件工作对象相互协调。 这是面向对象的基本概念。

以Hello World应用程序作为一个例子。 这个UIViewController对象负责应用程序视图的显示作为一个占位符为Hello World按钮。 这个UIButton(即:Hello World按钮)对象负责显示一个标准的iOS按钮屏幕和监听任何触摸事件。另一方面, UIAlertView的对象,负责显示警告消息给用户。 最重要的是,所有这些对象一起工作组成了Hello World应用程序。

Sample Objects in Hello World App

在Hello World应用程序示例对象

在面向对象的编程,对象拥有两个特点:属性(Properties)和功能(functional)。 让我们考虑一个真实世界的对象——汽车。 一辆车有它自己的颜色,模型,最高速度,制造商,等等。这些都是汽车的性能。 在功能方面,汽车应该提供基本的功能,比如加速、制动、转向等。

如果我们回到iOS的世界,让我们看看在Hello world应用程序这个UIButton对象的特性和功能:

>属性 ——背景、大小、颜色和字体属性的例子是UIButton

>功能 ——当按钮被窃听了,它认识到水龙头事件并显示一条警告信息在屏幕上。 所以“showMessage”按钮的功能。

在我们的教程,你总是遇到术语“方法”。 在objective - c中,我们创建方法来提供一个对象的功能。 通常一个方法对应于一个特定对象的函数。

类(Class)、对象(Object)和实例(Instance)

除了方法和对象,你可能会在OOP遇到诸如实例,类。 让我给一个简短的解释。

一个 类 是创建对象的一个蓝图或原型。 基本上,一个类包含属性和方法。 比如说我们要定义一个课程类。 一个课程类包含属性,比如名字、课程代码和选课最大人数,已选 学生的数量。 这个类代表一个课程的蓝图。 我们可以使用它来创建不同的课程像iOS编程课程,课程代码IPC101、烹饪课程,课程代码CC101等等。在这里,“iOS编程课程”和“烹饪课程”是众所周知的  课程类的对象。 有时,我们还引用它们类 课程实例 。 为简单起见,您可以考虑 实例 作为另一个单词 对象 

重新定制表格单元的教程

那么我们怎么说明OOP呢? 学习编程,例子是最好的方法。 让我们重新审视 “定制表单元格”教程 

在viewDidLoad方法表格单元的教程中,我们创建了三个数组来存储不同类型的数据:配方名称,菜单缩略图和准备时间。 如果你理解了OOP概念,这些数据可以被称作菜单属性。










10
11
12
-  ( void )viewDidLoad 
{ 
     [super viewDidLoad ]
     // Initialize(初始化) table data 
    tableData  =  [ NSArray arrayWithObjects : @ "Egg Benedict"@ "Mushroom Risotto"@ "Full Breakfast"@ "Hamburger"@ "Ham and Egg Sandwich"@ "Creme Brelee"@ "White Chocolate Donut"@ "Starbucks Coffee"@ "Vegetable Curry"@ "Instant Noodle with Egg"@ "Noodle with BBQ Pork"@ "Japanese Noodle with Pork"@ "Green Tea"@ "Thai Shrimp Cake"@ "Angry Birds Cake"@ "Ham and Cheese Panini"nil ]
     
     // Initialize thumbnails 
    thumbnails  =  [ NSArray arrayWithObjects : @ "egg_benedict.jpg"@ "mushroom_risotto.jpg"@ "full_breakfast.jpg"@ "hamburger.jpg"@ "ham_and_egg_sandwich.jpg"@ "creme_brelee.jpg"@ "white_chocolate_donut(炸面圈).jpg"@ "starbucks_coffee.jpg"@ "vegetable_curry.jpg"@ "instant_noodle_with_egg.jpg"@ "noodle_with_bbq_pork.jpg"@ "japanese_noodle_with_pork.jpg"@ "green_tea.jpg"@ "thai_shrimp_cake.jpg"@ "angry_birds_cake.jpg"@ "ham_and_cheese_panini.jpg"nil ]
     
     // Initialize(初始化) Preparation Time 
    prepTime  =  [ NSArray arrayWithObjects : @ "30 min"@ "30 min"@ "20 min"@ "30 min"@ "10 min"@ "1 hour"@ "45 min"@ "5 min"@ "30 min"@ "8 min"@ "20 min"@ "20 min"@ "5 min"@ "1.5 hour"@ "4 hours"@ "10 min"nil ]
}

把名称(即tableData),缩略图(即菜单图像)和准备时间(即prepTime)都与食谱联系,而不是在不同的数组存储这些数据,最好创建一个食谱类模型。

Recipe Class

食谱类

我们将再次使用“定制表单元格”项目并将其转换为使用新的食谱类。 如果你还没有阅读教程,回去看看  

创建Recipe类

首先,我们将创建Recipe类。 右键单击SimpleTable文件夹,然后选择“新文件…”。 选择“objective - c类”模板(在Cocoa Touch),然后单击“下一步”。 类的名字“食谱”,作为一个子类的“NSObject”。 点击“下一步”,保存文件在你的Xcode项目文件夹。

Create the Recipe Class

创建Recipe类继承自NSObject

一旦完成,,Xcode将创建Recipe. h和Recipe.m文件。 在头文件,添加食谱类的属性:







@ interface Recipe NSObject  

@property  nonatomic、strong NSString  名name;  / /名称的配方  
@property  nonatomic、strong  NSString  prepTime;  / /准备时间  
@property  nonatomic、strong  NSString  imageFile;  / /图像文件名的配方  

@end

在实现文件(即Recipe.m),我们添加@synthesis指令。 这个@synthesize指令告诉编译器生成setter和getter方法来访问属性我们定义的标题。







@implementation Recipe   

@synthesize name  
@synthesize  prepTime;  
@synthesize  imageFile;  

@end

现在我们已经创建了一个食谱类与三个属性。 稍后,我们将利用它来实例化不同配方的对象。 但是我们如何能将数组对象转换成食谱呢? 这三个数据数组可以描述如下:

Three Arrays to Store Recipe Name, Thumbnail and Preparation Time

三个存储配方名称,缩略图和准备时间的数组

使用新的食谱类,我们可以把三个数组转换成一个数组对象,每个对象存储食谱菜单数据。

Recipes Array

一个数组对象的菜单

初始化数组对象的菜单

回到编码部分。 而不是宣布三个数组(tableData,thumbnail,prepTime),我们将声明一个菜单变量的数组对象。




@implementation  SimpleTableViewController  
 
     NSArray  * Recipes  
}

在SimpleTableView.m的ControllerviewDidLoad方法里,我们初始化菜单对象(共16个菜单对象)并把它们放进“食谱”数组。










10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
-  ( void )viewDidLoad 
{ 
     [super viewDidLoad ]
     
    Recipe  *recipe1  =  [Recipe new ]
    recipe1.name  =  @ "Egg Benedict"
    recipe1.prepTime  =  @ "30 min"
    recipe1.imageFile  =  @ "egg_benedict.jpg"
     
    Recipe  *recipe2  =  [Recipe new ]
    recipe2.name  =  @ "Mushroom Risotto"
    recipe2.prepTime  =  @ "30 min"
    recipe2.imageFile  =  @ "mushroom_risotto.jpg"
     
    Recipe  *recipe3  =  [Recipe new ]
    recipe3.name  =  @ "Full Breakfast"
    recipe3.prepTime  =  @ "20 min"
    recipe3.imageFile  =  @ "full_breakfast.jpg"
     
    Recipe  *recipe4  =  [Recipe new ]
    recipe4.name  =  @ "Hamburger"
    recipe4.prepTime  =  @ "30 min"
    recipe4.imageFile  =  @ "hamburger.jpg"
     
    Recipe  *recipe5  =  [Recipe new ]
    recipe5.name  =  @ "Ham and Egg Sandwich"
    recipe5.prepTime  =  @ "10 min"
    recipe5.imageFile  =  @ "ham_and_egg_sandwich.jpg"
     
    Recipe  *recipe6  =  [Recipe new ]
    recipe6.name  =  @ "Creme Brelee"
    recipe6.prepTime  =  @ "1 hour"
    recipe6.imageFile  =  @ "creme_brelee.jpg"
     
    Recipe  *recipe7  =  [Recipe new ]
    recipe7.name  =  @ "White Chocolate Donut"
    recipe7.prepTime  =  @ "45 min"
    recipe7.imageFile  =  @ "white_chocolate_donut(炸面圈).jpg"
     
    Recipe  *recipe8  =  [Recipe new ]
    recipe8.name  =  @ "Starbucks Coffee"
    recipe8.prepTime  =  @ "5 min"
    recipe8.imageFile  =  @ "starbucks_coffee.jpg"
     
    Recipe  *recipe9  =  [Recipe new ]
    recipe9.name  =  @ "Vegetable Curry"
    recipe9.prepTime  =  @ "30 min"
    recipe9.imageFile  =  @ "vegetable_curry.jpg"
     
    Recipe  *recipe10  =  [Recipe new ]
    recipe10.name  =  @ "Instant Noodle with Egg"
    recipe10.prepTime  =  @ "8 min"
    recipe10.imageFile  =  @ "instant_noodle_with_egg.jpg"
     
    Recipe  *recipe11  =  [Recipe new ]
    recipe11.name  =  @ "Noodle with BBQ Pork"
    recipe11.prepTime  =  @ "20 min"
    recipe11.imageFile  =  @ "noodle_with_bbq_pork.jpg"
     
    Recipe  *recipe12  =  [Recipe new ]
    recipe12.name  =  @ "Japanese Noodle with Pork"
    recipe12.prepTime  =  @ "20 min"
    recipe12.imageFile  =  @ "japanese_noodle_with_pork.jpg"
     
    Recipe  *recipe13  =  [Recipe new ]
    recipe13.name  =  @ "Green Tea"
    recipe13.prepTime  =  @ "5 min"
    recipe13.imageFile  =  @ "green_tea.jpg"
     
    Recipe  *recipe14  =  [Recipe new ]
    recipe14.name  =  @ "Thai Shrimp Cake"
    recipe14.prepTime  =  @ "1.5 hours"
    recipe14.imageFile  =  @ "thai_shrimp_cake.jpg"
     
    Recipe  *recipe15  =  [Recipe new ]
    recipe15.name  =  @ "Angry Birds Cake"
    recipe15.prepTime  =  @ "4 hours"
    recipe15.imageFile  =  @ "angry_birds_cake.jpg"
     
    Recipe  *recipe16  =  [Recipe new ]
    recipe16.name  =  @ "Ham and Cheese Panini"
    recipe16.prepTime  =  @ "10 min"
    recipe16.imageFile  =  @ "ham_and_cheese_panini.jpg"
     
    recipes  =  [ NSArray arrayWithObjects : recipe (食谱)1, recipe2, recipe3, recipe4, recipe5, recipe5, recipe6, recipe7, recipe8, recipe9, recipe10, recipe11, recipe12, recipe13, recipe14, recipe15, recipe16,  nil ]

}

在Objective C,我们使用“new”方法(实际上这是NSObjects提供的)来实例化一个对象。 你有两种方法可以设置该属性的值。 在上面的代码中,我们使用dot语法来赋值。 例如,

recipe1.name  =  @ "Egg Benedict";

或者,您可以调用setName方法使用方括号([])。 这里是等价的代码

[recipe1 setName : @ "Egg Benedict" ];

两个语法执行完全相同的事情。 但在我们的教程我们将使用dot语法。

TableData取代食谱数组

为了使用食谱数组我们还有一些事情需要改变。 对于numberOfRowsInSection方法,我们改变”tableData”为“recipes”:





-  (NSInteger )tableView : (UITableView  * )tableView numberOfRowsInSection : (NSInteger )section 
{ 
// DELETE THIS LINE   return [tableData count]; 
     return  [recipes count ]
}

对于“cellForRowAtIndexPath”的方法,我们将用recipes数组代替“tableData”、“thumbnails”和“prepTime”:










10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-  (UITableViewCell  * )tableView : (UITableView  * )tableView cellForRowAtIndexPath : ( NSIndexPath  * )indexPath 
{ 
     static  NSString  *simpleTableIdentifier  =  @ "SimpleTableCell"

    SimpleTableCell  *cell  =  (SimpleTableCell  * ) [tableView dequeueReusableCellWithIdentifier :simpleTableIdentifier ]
     if  (cell  ==  nil )  
     { 
         NSArray  *nib  =  [ [ NSBundle mainBundle ] loadNibNamed : @ "SimpleTableCell" owner :self options : nil ]
        cell  =  [nib objectAtIndex : 0 ]
     }  
     
     /* DELETE THIS SECTION  
    cell.nameLabel.text = [tableData objectAtIndex:indexPath.row]; 
    cell.thumbnailImageView.image = [UIImage imageNamed:[thumbnails objectAtIndex:indexPath.row]]; 
    cell.prepTimeLabel.text = [prepTime objectAtIndex:indexPath.row]; 
     */
 

     // Locate the current recipe object and assign the label, image & prepTime 
    Recipe  *recipe  =  [recipes objectAtIndex :indexPath.row ]
    cell.nameLabel.text  = recipe.name; 
    cell.thumbnailImageView.image  =  [UIImage imageNamed :recipe.imageFile ]
    cell.prepTimeLabel.text  = recipe.prepTime; 

     return cell; 
}

正如您可以从代码看到的,通过改变三个数组,该食谱代码更可读,更易理解的。 现在您可以运行您的应用程序,,虽然外观上和我们以前教程里创建的一模一样, 然而,在内部我们通过创建我们自己的食谱对象美化了我们的代码。

SimpleTable App with Custom Cell Prep Time

即将到来的下一个是什么?

我希望你对于今日的教程不是很无聊。 这仅仅是OOP的基本概念。 还需要大量的实践和研究你才能变得熟练。 未来,在我们下一个教程中,我将向您展示如何基于我们已经学会的,去提高细节视图屏幕。 这将是有趣的!


作者:但,我知道 
出处:http://www.cnblogs.com/haichao/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

------你们的支持的是对博主最大的支持!
 

 

IOS编程浅蓝教程

 
摘要: 如果你花了很长时间的跟着我这个教程,你知道我们已经走的相当远了。 现在,您应该能够构建一个iPhone应用程序,能使用标签栏(Tab Bat),导航控制器(navigation controller)和表视图(table view),并使用故事板串连视图。 可能很多人会说,原来的详细视图太普通。 我们如何能显示更多的信息,包括图像吗? 如果你理解了教程,这应该不难,而且我有意地忽略了这部... 阅读全文
posted @  2012-12-25 10:20 但,我知道 阅读(278) |  评论 (1)  编辑
 
摘要: 一个常见的问题是我如何在UITableView里用一个搜索栏实现数据搜索。 本章节将展示如何往标签栏项目添加一个搜索栏。 有了搜索栏,程序允许用户通过指定一个搜索词搜索菜谱列表。 嗯,添加一个搜索栏不是很难,但这需要一点额外的工作。 我们将继续从前一教程Xcode项目中开发的程序做基础。 如果你没有经历过前面的教程,花些时间来看看。 理解搜索显示控制器(Search Di... 阅读全文
posted @  2012-12-07 12:30 但,我知道 阅读(346) |  评论 (1)  编辑
 
摘要: 这是故事版系列的第三篇文章。上一次,我们讨论了如何给用联线(Segue)连接的视图控制器之间的数据传递。它应该很容易吧?现在,让我们继续进行我们的故事板项目,看你怎么可以在iPhone的应用程序创建其他两个常见的UI元素。 在本教程中,您将了解到: >如何创建一个标签栏控制器(Tab Bar) >如何创建一个“关于”页面使用的UIWebView 如果你是新学故事板的,我建议你从我的第一个教... 阅读全文
posted @  2012-12-05 15:15 但,我知道 阅读(674) |  评论 (0)  编辑
 
摘要: 这是我们演示故事板系列的第二篇文章。在前一个教程中,我们介绍了故事板,那是一个在Xcode中方便设计友好用户界面的功能。如果你跟着教程走,从开始到现在,你应该已经建立了一个简单的菜单应用程序的导航界面。但是上一篇我们有一件事没讨论,那就是如何在通过联线(segue)连接的视图控制器中传值呢? 首先,让我们快速浏览一下我们已经完成了什么。在此之前,我们学会了使用故事板建立一个下面几件事情: >插... 阅读全文
posted @  2012-11-25 14:56 但,我知道 阅读(639) |  评论 (0)  编辑
 
摘要: 现在,如果你按照我们的教程,你应该有一个基本的了解UITableView和如何构建一个简单的应用程序。这个文章,我们将讨论新的东西-故事板(Storyboard)。这是一个最令人兴奋的功能,在Xcode 4.2和iOS 5 SDK。为iOS开发者,它可以使你的生活,更简单,让您轻松地设计你的iOS应用程序的用户界面。 在本教程中,我们将向您展示如何使用故事板来建立一个导航界面,并整合与UITa... 阅读全文
posted @  2012-11-23 11:56 但,我知道 阅读(935) |  评论 (6)  编辑
 
摘要: 正如在以前的帖子说,但是我在转到故事版(StoryBoard)教程之前,我有另外一个问题来回答。 我如何从UITableView删除一行呢? 当人们构建简单的表视图引用程序后,这是另一个常见的​​问题。同样的,它比你想象的更容易。但在进入编码部分,我打算给你介绍一个程序员使用最多的设计模式,用户界面​​编程的模型 - 视图 - 控制器模式(Model-View-Controller)。 ... 阅读全文
posted @  2012-11-18 12:32 但,我知道 阅读(770) |  评论 (1)  编辑
 
摘要: 虽然你可能认为你需要编写闪屏的代码,苹果已经可以非常轻松地把它做在Xcode中。不需要任何编码。你只需要做的是设置一些配置。 什么是闪屏 对于那些新学代码的人,可能没有听说过“闪屏”把,让我先作一个简单的解释。闪屏是常见于iOS应用程序,以及其他桌面应用程序。这是你启动一个应用程序时,你看到的第一个画面。通常情况下,初始屏幕是一个覆盖整个屏幕的图像,消失后加载主屏幕。下图显示了几种闪屏: ... 阅读全文
posted @  2012-11-17 19:23 但,我知道 阅读(933) |  评论 (2)  编辑
 
摘要: 哇又到了iOS编程教程的时间喽。在前面几此教程里,我们已经建立了一个非常简单的表格应用程序来显示食谱列表。如果你回头看看那个应用程序,你会发现所有的食谱都是直接在源代码中赋值的。以前我尽量保持事情的简单,主要集中展示了如何创建一个UITableView并使用它。然而,这不是一个很好的做法。在真正的应用程序中,对于用到的外在静态项目(即菜单信息),我们是把它们放在一个文件或数据库中或其他地方。在iO... 阅读全文
posted @  2012-11-16 20:45 但,我知道 阅读(857) |  评论 (2)  编辑
 
摘要: 如果你跟着学习iOS编程的教程,我相信你应该创建一个有自定义的表格单元格简单的表视图的应用程序。到目前为止,我们专注于表视图中的数据显示。但是,在有人在表上点击时我们就不知道干什么了。这是我们将在这篇文章告诉你的,关于如何处理行选择。 首先,让我们回顾一下我们的应用程序看看我们将添加的东西。 有一些变化把,我们在本教程中实现的内容有: ·... 阅读全文
posted @  2012-11-10 21:13 但,我知道 阅读(645) |  评论 (2)  编辑
 
摘要: 在此之前,我们已经创建了一个通过简单的表视图应用程序并显示预定义的图像。在本教程中,我们将继续努力,使应用程序变得更好,:>不同的行显示不同的图像 - 上个教程,我们的所有行显示相同的缩略图。那么不同的食物显示不同的图片不是更好么?>自定义视图单元-我们将展示我们自己的视图来替代默认表单元格样式显示不同缩略图在我们更改代码之前,让我们回顾显示缩略图的代码。最后,我们增加了一个行代码指示UITableView每一行显示“creme_brelee.jpg”这张图片。显然,为了显示不同的图像,我们需要改变这行代码。正如之前解释的那样,IOS在显示一条表单元格时自动调用“cellForRo 阅读全文
posted @  2012-11-10 12:30 但,我知道 阅读(558) |  评论 (6)  编辑
 
摘要: 创建Hello World应用程序有乐趣吗?在本教程中,我们将继续创建更复杂的东西,并使用表视图构建一个简单的应用程序,。如果你没有看过以前的iOS编程的基本教程,在继续接下来的教程之前先看看把。 首先,在iPhone应用程序什么是表视图中?表视图是一种常见的UI元素在iOS应用程序。在某些方面,大多数应用程序,使用表视图去显示数据列表。最好的例子是内置的手机应用程序。您的联系人显... 阅读全文
posted @  2012-11-09 15:42 但,我知道 阅读(714) |  评论 (6)  编辑
 
摘要: 我希望你很享受iOS编程的教程并已经构建你的第一个应用程序。在我们继续我们的下一个建立一个更复杂应用程序的教程之前,让我们退后一步,仔细看看先前建立的Hello World应用程序。这将是一个让你了解一些Objective-C的语法和应用程序的内部运作的好方法。 到目前为止,您按照一步一步的指导并构建Hello World应用程序。但当你继续本教程的话,您可能会遇到这些问题: ... 阅读全文
posted @  2012-11-04 19:59 但,我知道 阅读(1119) |  评论 (4)  编辑
 
摘要: 我希望你已经正确地配置您的开发环境包括安装Xcode。如果你还没有这样做的,查看我们以前的文章去看看开始iOS编程之前你需要做的事。我们将使用Xcode 4.3.2的教程。但是,如果你不能升级到最新版本的Xcode,您也可以Xcode的4.2构建应用程序的情况下。如果您已阅读任何编程的书,你可能听说过“Hello World”程序。它已成为为首次学习者创造的传统节目。这是一个非常简单的程序,通常显示的设备上输出“Hello,World”的。在本教程中,让我们按照传统编程路线,使用Xcode创建一个“Hello World”应用程序。尽管它是简单,但“Hello World”程序是有几个目的的: 阅读全文
posted @  2012-11-03 18:46 但,我知道 阅读(1055) |  评论 (2)  编辑
 
摘要: 到目前为止,超过600个读者已经签署了自由的iOS教程。首先,感谢那些加入我们的社区。在我们开始谈论iOS编程之前,让我们通过这些工具去建立你的第一个应用程序。1。拥有一台Mac机器是的,你需要一台Mac。这是iOS开发的基本要求。开发一款iPhone(或iPad)应用程序,你需要首先得到的Mac Intel处理器上运行的Mac OS X版本10.7(或向上)。也许你拥有一台PC,最便宜的选择是购买Mac Mini。入门型的零售价是599美元(如果你通过亚马逊购买的,它只是美国569美元)。你可以把它与你的PC的显示器搭配。基本型号的Mac mini配备了2.3GHz双核英特尔酷睿i5处理器和 阅读全文
posted @  2012-11-03 15:52 但,我知道 阅读(1513) |  评论 (3)  编辑
 
摘要: 好久没更博文了,现在来篇。首先声明下,这个教程不是我原创的,我没有这么厉害,这是我在国外网站看到的一个教程,我会附上链接的给那些英语不错的人看,我呢就做个“牛奶搬运工”的角色了,关键是为了自己和大家的学习呢,而且还可以锻炼我的英文水平。随便吐槽下,原来做翻译活也是这么累的啊,还是写自己研究的东西舒心的多,所以大家的帮助和鼓励才是我继续的原动力,如果发现大家对我的译文没兴趣的话,我就不贴出来了,只自己内部研究看看好了。好下面是预览:在Appcoda,我们努力为客户提供最好的教程,以帮助任何人学习iOS编程。这个免费的iOS编程教程是为不具备任何编程经验的初学者为目标设计的。你只需要强烈的激情来构 阅读全文
posted @  2012-11-03 15:22 但,我知道 阅读(496) |  评论 (0)  编辑

你可能感兴趣的:(面向对象)