Objective-C 基础教程(Amazon超级畅销书,好评如潮)

Objective-C 基础教程(Amazon超级畅销书,好评如潮)



【作  者】(美)达尔林普尔(Dalrymple,M.),(美)纳斯特(Knaster,S.) [同作者作品] [作译者介绍] 
【译  者】 高朝勒[同译者作品] 
【丛 书 名】 图灵程序设计丛书 
【出 版 社】 人民邮电出版社     【书 号】 9787115208774 
【上架时间】 2009-7-10 
【出版日期】 2009 年8月 【开 本】 16开

【内容简介】
Objective-C是创建Mac OS X应用和iPhone应用的主要语言,优雅的面向对象编程环境与快速而普及的C语言珠联璧合,造就了它的不俗表现。翻开本书你就能感到它的魅力扑面而来。.

本书全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等众多重要的面向对象编程技术。书中还阐述了如何利用Cocoa进行数据的保存、检索和操作等。..

如果你的iPhone开发经验不足,还可结合阅读《iPhone开发基础教程》、《iPhone开发秘籍》,定能收到意想不到的学习效果。祝你在iPhone开发进程中所向披靡!...


【编辑推荐】

Amazon超级畅销书,好评如潮.
全面解读Objective-C语言及Cocoa特性..
用最通俗的语言阐释深奥的知识...

译 者 序
Objective-C语言是C语言的一个扩展集,许多(可能是大多数)具备Mac OS X外观的应用程序都是使用该语言开发的。它以C语言为基础,添加了一些微妙但意义重大的特性。
苹果公司为Objective-C语言提供了Cocoa工具包。Cocoa是使用Objective-C编写的,它不仅包含Mac OS X用户界面的所有元素,还包含其他许多内容。Cocoa和Objective-C是苹果公司Mac OS X操作系统的核心。虽然Mac OS X相对较新,但Objective-C和Cocoa早在20世纪80年代就已诞生。它们由一个优秀的编程团队耗费数年时间完成,该团队从未停止过对Cocoa的更新和增强,所以直到现在,Cocoa仍在被广泛使用。
本书全面地介绍了Objective-C语言的基础知识。全书共分17章和1个附录,内容涵盖面向对象编程的基础知识,继承、复合、内存管理、对象初始化、协议、键/值编码等Objective-C语言特性,以及Xcode、Foundation Kit、AppKit等辅助工具。附录中还探讨了使用其他语言的编程人员在转向Objective-C时需要克服的一些思维障碍。本书内容丰富生动,采用示例程序与理论知识相结合的方式,不仅提供了代码片段,还有大量完整的示例程序。
本书由高朝勤、杨越、刘霞、刘炼、陈宝国等翻译,在翻译过程中得到了欧阳宇、盛海艳的热心帮助,在此表示衷心感谢。作为原著作者与中文读者之间的传话人,我们希望能把作者要表达的意思用中文完整且准确地传达出来,使更多读者能从中获益。虽然我们在翻译的过程中竭力以信、达、雅为目标,但由于水平有限,书中难免会出现疏漏,恳请广大读者给予批评指正。

译  者2009年5月【目录】 第1章 启程 11.1 预备知识 11.2 历史背景 11.3 内容简介 21.4 小结 3第2章 对C的扩展 42.1 最简单的Objective-C程序 42.2 解构Hello Objective-C程序 72.2.1 #import 72.2.2 NSLog()和@"字符串" 82.3 布尔类型 102.3.1 BOOL强大的实用功能 112.3.2 比较 132.4 小结 14第3章 面向对象编程基础知识 153.1 间接 153.1.1 变量与间接 163.1.2 使用文件名的间接 183.2 在面向对象的编程中使用间接 243.2.1 过程式编程 243.2.2 实现面向对象编程 293.3 学习有关的术语 333.4 Objective-C中的OOP 343.4.1 @interface部分 343.4.2 @implementation部分 383.4.3 实例化对象 403.4.4 扩展Shapes-Object 413.5 小结 43第4章 继承 454.1 为何使用继承 454.2 继承语法 484.3 继承的工作机制 514.3.1 方法调度 514.3.2 实例变量 534.4 重写方法 554.5 小结 57第5章 复合 585.1 什么是复合 585.1.1 Car程序 585.1.2 自定义NSLog() 595.2 存取方法 625.2.1 设置发动机的属性 645.2.2 设置轮胎的属性 645.2.3 跟踪汽车的变化 665.3 扩展CarParts程序 675.4 复合还是继承 685.5 小结 69第6章 源文件组织 706.1 拆分接口和实现部分 706.2 拆分Car程序 736.3 使用跨文件依赖关系 756.3.1 重新编译须知 756.3.2 让汽车开动 776.3.3 导入和继承 796.4 小结 80第7章 深入了解Xcode 827.1 改变公司名称 827.2 使用编辑器的技巧与诀窍 837.3 在Xcode的帮助下编写代码 857.3.1 首行缩进 857.3.2 代码自动完成 857.3.3 括号匹配 887.3.4 批量编辑 887.3.5 代码导航 917.3.6 emacs不是Mac程序 917.3.7 任意搜索 927.3.8 芝麻开门 937.3.9 书签 937.3.10 集中注意力 947.3.11 开启导航条 957.4 获取信息 987.4.1 研究助手 987.4.2 文档管理程序 997.5 调试 1007.5.1 暴力调试 1007.5.2 Xcode的调试器 1007.5.3 精巧的调试符号 1017.5.4 开始调试 1017.5.5 检查程序 1047.5 备忘表 1057.6 小结 106第8章 Foundation Kit快速教程 1078.1 一些有用的数据类型 1088.1.1 范围的作用 1088.1.2 几何数据类型 1088.2 字符串 1098.2.1 创建字符串 1098.2.2 类方法 1098.2.3 关于大小 1108.2.4 比较的策略 1108.2.5 不区分大小写的比较 1128.2.6 字符串内是否还包含别的字符串 1128.3 可变性 1138.4 集合家族 1158.4.1 NSArray 1158.4.2 可变数组 1188.4.3 枚举“王国” 1198.4.4 快速枚举 1208.4.5 NSDictionary 1208.4.6 使用,但不要扩展 1228.5 各种数值 1228.5.1 NSNumber 1228.5.2 NSValue 1238.5.3 NSNull 1248.6 示例:查找文件 1248.7 小结 128第9章 内存管理 1299.1 对象生命周期 1299.1.1 引用计数 1309.1.2 对象所有权 1329.1.3 访问方法中的保留和释放 1339.2 自动释放 1349.2.1 所有对象全部入池 1359.2.2 自动释放池的销毁时间 1359.2.3 自动释放池的工作过程 1369.3 Cocoa内存管理规则 1389.3.1 临时对象 1389.3.2 拥有对象 1399.3.3 垃圾回收 1419.4 小结 142第10章 对象初始化 14310.1 分配对象 14310.2 初始化对象 14310.2.1 编写初始化方法 14410.2.2 初始化时做什么 14610.3 便利初始化函数 14610.4 更多部件改进 14710.4.1 Tire类的初始化 14710.4.2 更新main()函数 14910.4.3 清理Car类 15210.5 支持垃圾回收风格的Car类清理 15510.6 指定初始化函数 15610.6.1 子类化问题 15710.6.2 改进Tire类的初始化函数 15910.6.3 添加AllWeatherRadial类的初始化函数 16010.7 初始化函数规则 16010.8 小结 161第11章 特性 16211.1 修改特性值 16211.1.1 简化接口 16311.1.2 简化实现 16411.1.3 点表达式的妙用 16611.2 特性扩展 16711.2.1 名称的使用 17111.2.2 只读特性 17211.2.3 特性不是万能的 17311.3 小结 173第12章 类别 17512.1 创建类别 17512.1.1 声明类别 17512.1.2 实现类别 17612.1.3 类别的局限性 17812.1.4 类别的作用 17812.2 利用类别分散实现 17812.3 使用类别创建前向引用 18212.4 非正式协议和委托类别 18312.4.1 ITunesFinder项目 18412.4.2 委托和类别 18712.4.3 响应选择器 18712.4.4 选择器的其他应用 18812.5 小结 189第13章 协议 19013.1 正式协议 19013.1.1 声明协议 19013.1.2 采用协议 19113.1.3 实现协议 19213.2 复制 19213.2.1 复制Engine 19213.2.2 复制Tire 19413.2.3 复制Car 19613.2.4 协议和数据类型 19913.3 Objective-C 2.0的新特性 19913.4 小结 200第14章 AppKit简介 20114.1 构建项目 20114.2 构建AppController @interface 20314.3 Interface Builder 20314.4 布局用户界面 20514.5 连接 20714.5.1 连接输出口 20714.5.2 连接操作 20814.6 AppController实现 21014.7 小结 212第15章 文件加载与保存 21315.1 属性列表 21315.1.1 NSDate 21315.1.2 NSData 21415.1.3 写入和读取属性列表 21515.2 编码对象 21615.3 小结 221第16章 键/值编码 22216.1 入门项目 22216.2 KVC简介 22416.3 路径 22516.4 整体操作 22616.4.1 中途小憩 22716.4.2 流畅地运算 23116.5 批处理 23316.6 nil仍然可用 23416.7 处理未定义的键 23516.8 小结 236第17章 NSPredicate 23717.1 创建谓词 23717.2 燃料过滤器 23917.3 格式说明符 24017.4 运算符 24117.4.1 比较和逻辑运算符 24217.4.2 数组运算符 24317.5 SELF足够了 24317.6 字符串运算符 24517.7 LIKE运算符 24517.8 小结 246附录 从其他语言转向Objective-C 247 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Javascript,PHP,Ruby和Python.它为API提供了一些可能需要的标准功能,但缺少的是全局事件.现在我想将全局热键分配给我的应用程序并且几乎没有任何问题.现在我只针对MAC,但无法找到任何Python或Ruby的解决方案.我找到了Coc
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序中存在的javascript函数时,该函数无法识别.当我在典型的html结构中调用该函数时,该函数被识别为预期的.示例如下:Objective-C的:-(void)viewDidLoad{[superviewDidLoad];//CODEGOESHERE_webView.d
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标.我已经使用ProcessManagerAPI迭代所有应用程序.我已经确定在processMode中设置了没有modeBackgroundOnly标志的任何进程(从GetProcessInformation()中检索)是一个“前台”应用程序,并显示在任务切换器窗口中.我只需要
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的想为iPhone编写应用程序,但要做到这一点我需要了解Cocoa,但要做到这一点我需要了解Objective-C2.0,但要做到这一点我需要知道C,为此我需要了解编译语言(与解释相关).我应该从哪里开始?我真的需要从简单的旧“C”开始,正
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用C.所以我正在为一些软件编写一个插件,我需要定期调用一个函数.在Windows上,我只是将函数的地址传递给SetTimer(),它将以给定的间隔调用.在OSX上有一个简单的方法吗?它应该尽可能简约.我并没有在网上找到任何不花哨的东西
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和问题:建立:>雪豹(10.6.8)>Python2.7.2(由EPD7.1-2提供)>iPython0.11(由EPD7.1-2提供)>matplotlib(由EPD7.1-2提供)示例代码:importnumpyasnpimportpylabasplx=np.random.normal(size=(1000,))pl.plot
我正在使用FoundationFramework在Objective-C(在xCode中)编写命令行工具.我必须使用Objective-C,因为我需要取消归档以前由NSKeyedArchiver归档的对象.我的问题是,我想知道我现在是否可以在我的Linux网络服务器上使用这个编译过的应用程序.我不确定是否会出现运行时问题,或者可
使用cocoapods,我们首先了解一下rvm、gem、ruby。rvm和brew一样,但是rvm是专门管理ruby的版本控制的。rvmlistknown罗列出ruby版本rvminstall版本号   可以指定更新ruby版本而gem是包管理gemsource-l查看ruby源gemsource-rhttps://xxxxxxxx移除ruby源gemsou
我有一个包含WebView的Cocoa应用程序.由于应用程序已安装客户群,我的目标是10.4SDK.(即我不能要求Leopard.)我有两个文件:index.html和data.js.在运行时,为了响应用户输入,我通常会使用应用程序中的当前数据填充data.js文件.(data.js文件由body.html上的index.html文件用于填充
如何禁用NSMenuItem?我点击后尝试禁用NSMenuItem.操作(注销)正确处理单击.我尝试通过以下两种方式将Enabled属性更改为false:partialvoidLogout(AppKit.NSMenuItemsender){sender.Enabled=false;}和partialvoidLogout(AppKit.NSMenuItemsender){LogoutI
我在想,创建一个基本上只是一个带Web视图的界面的Cocoa应用程序是否可行?做这样的事情会有一些严重的限制吗?如果它“可行”,那是否也意味着你可以为Windows应用程序做同样的事情?解决方法:当然可以创建一个只是一个Cocoa窗口的应用程序,里面有一个Web视图.这是否可以被称为“可可应
原文链接:http://www.cnblogs.com/simonshi2012/archive/2012/10/08/2715464.htmlFrom:http://www.idev101.com/code/Cocoa/Notifications.htmlNotificationsareanincrediblyusefulwaytosendmessages(anddata)betweenobjectsthatotherwi
如果不手动编写GNUmake文件,是否存在可以理解Xcode项目的任何工具,并且可以直接针对GNUstep构建它们,从而生成Linux可执行文件,从而简化(略微)保持项目在Cocoa/Mac和GNUstep/Linux下运行所需的工作?基本上,是否有适用于Linux的xcodebuild样式应用程序?几个星期前我看了pbtomake
我正在将页面加载到WebView中.该页面有这个小测试Javascript:<scripttype="text/javascript">functiontest(parametr){$('#testspan').html(parametr);}varbdu=(function(){return{secondtest:function(parametr){$('#testspan&#039
我正在尝试使用NSAppleScript从Objective-C执行一些AppleScript…但是,我正在尝试的代码是Yosemite中用于自动化的新JavaScript.它在运行时似乎没有做任何事情,但是,正常的AppleScript工作正常.[NSAppactivateIgnoringOtherApps:YES];NSAppleScript*scriptObject=[[NSApple
链接:https://pan.baidu.com/s/14_im7AmZ2Kz3qzrqIjLlAg           vjut相关文章Python与Tkinter编程ProgrammingPython(python编程)python基础教程(第二版)深入浅出PythonPython源码剖析Python核心编程(第3版)图书信息作者:Kochan,StephenG.出
我正在实现SWTJava应用程序的OSX版本的视图,并希望在我的SWT树中使用NSOutlineView提供的“源列表”选项.我通过将此代码添加到#createHandle()方法来破解我自己的Tree.class版本来实现这一点:longNSTableViewSelectionHighlightStyleSourceList=1;longhi=OS.sel_regist
我的Cocoa应用程序需要使用easy_install在用户系统上安装Python命令行工具.理想情况下,我想将一个bash文件与我的应用程序捆绑在一起然后运行.但据我所知这是不可能的,因为软件包安装在Python的“site-packages”目录中.有没有办法创建这些文件的“包”?如果没有,我应该如何运行ea
摘要: 文章工具 收藏 投票评分 发表评论 复制链接 Swing 是设计桌面应用程序的一个功能非常强大工具包,但Swing因为曾经的不足常常遭到后人的诟病.常常听到旁人议论纷纷,”Swing 运行太慢了!”,”Swing 界面太丑嘞”,甚至就是说”Swing 简直食之无味”. 从Swing被提出到现在,已是十年光景,Swing早已不是昔日一无是处的Swing了. Chris Adamson 和我写
苹果的开发:   我对于Linux/Unix的开发也是一窍不通,只知道可以用Java.不过接触了苹果过后,确实发现,世界上确实还有那么一帮人,只用苹果,不用PC的.对于苹果的开发,我也一点都不清楚,以下是师兄们整理出来的网站. http://www.chezmark.com/osx/    共享软件精选 http://www.macosxapps.com/    分类明了,更新及时的一个重要Mac