Programming with Objective-C——翻译1章(格式全废了)

为什么在后台编辑器里是这样的,发表之后就变成那种搞笑的格式了呢?!!!!!!

下面是博客编辑器后台的效果⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️


然后发表之后的效果:

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️

Introduction简介


About Objective-C关于OC

Objective-C是OSX和iOS平台上的首选编程语言。它是C语言的超集,并提供了面向对象和动态运行时功能。OC继承了C语言语法,原子类型,流程控制等,在这之上提供面向对象编程功能。OC在底层支持类图和对象字面量,并提供动态类型和动态绑定功能,使许多工作得以在运行时进行。At a Glance概述本文档介绍OC语言,并提供许多实例。你可以学到如何自定义类,以及OC中Cocoa和Cocoa Touch框架的使用。本质上框架(Cocoa或Cocoa Touch)和OC语言相互独立,但使用上两者却联系紧密。比如要在OC中实现许多底层功能,就必须使用框架提供的支持。An App Is Built from a Network of Objects程序以对象为基础当开发者开发OSX和iOS平台应用时,大多数时间都是在操作对象。你可以使用框架或自定义类生成对象。如果想自定义类,首先要明确这个类需要提供哪些公共接口。这些接口封装(encapsulate)了相关的数据和方法成员。对象方法(Object methods)说明了对象可接收的消息类型,还提供了方法的参数(parameters)信息。另外你需要已声明(declared)的方法(method)进行实现(implement)。相关章节:定义类,使用对象,封装数据


Categories Extend Existing Classes(Categories 扩展已存在类)


(Category暂时未见统一译法,有类目,分类。。。)Category允许用已有类为基础建立新类,提供比已有类更多的功能,从而不用费时去新建一个近似的类。你可以在任何类上使用Category,无论是自定义类(拥有源码)还是框架类如NSString(用户没有源码)。如果你有类的源码,你可以使用class extension增加或修改这个类的属性。通常在类(自定类或自定义框架类)实现文件中使用Class extensions,用来隐藏私有行为。相关章节:定制已有类


Protocols Define Messaging Contracts消息传递协议


OC程序运行时会发生大量消息传递。这些消息的格式在对象方法中声明。使用中常定义不捆绑到特定类上的对象方法(methods)。OC使用协议(protocols)来定义这些方法,比如一些对象会委托调用这些方法,无论调用是可选还是必须的。【委托(delegate),通俗点的解释就是可以将方法作为一个参数传到另外一个方法中使用。Delegation is a simple and powerful pattern in which one object in a program acts on behalf of, or in coordination with, another object. The delegating object keeps a reference to the other object—the delegate—and at the appropriate time sends a message to it. The message informs the delegate of an event that the delegating object is about to handle or has just handled. The delegate may respond to the message by updating the appearance or state of itself or other objects in the application, and in some cases it can return a value that affects how an impending event is handled. The main value of delegation is that it allows you to easily customize the behavior of several objects in one central object.】任何类都可指明它是否接受协议。在使用时,协议内的所有方法都需要进行实现。相关章节:协议


Values and Collections Are Often Represented as Objective-C Objects Objective-C中的值和集合对象


开发时经常在OC中使用Cocoa和Cocoa Touch类。NSString类可用于表示字符串;NSNumber类可表示多种不同数值类型,如整型或浮点型;NSValue可表示C中的结构体等其它类型。你也可以直接使用C中的原子类型,如int,float,char等。集合对象是集合类的实例化,比如NSArray,NSSet或NSDictionary,这些类实例化的对象都是用于存放OC中其它对象的。相关章节:值和集合


Blocks Simplify Common Tasks 使用块简化常规任务


块(Blocks)是C、OC和C++中提供的语言功能,代表了一个工作单元;它们封装了代码和状态集,和其它编程语言中的闭包(closures)类似。块常被用于简化计数、排序和测试任务。块也被用于简化使用GCD等技术的同步或异步任务的调度。相关章节:块(Blocks)


Error Objects Are Used for Runtime Problems 用于运行时问题的Error对象


虽然OC已经包含了异常处理(Exception handling)功能,但Cocoa和Cocoa Touch中的异常处理只适用于程序自身的错误(例如数组越界),并且需要在发布程序前将这些错误修复。所有其它类型的错误——包括运行时错误:如磁盘空间满或无网络连接,都可以使用NSError类来表示。为达到最佳的用户体验,你的程序应当对这些错误进行有针对性地处理。相关章节:错误处理


Objective-C Code Follows Established Conventions代码规范OC


当编写代码时,应当遵守一些编码的规范。方法名(Method names)以小写字母开头,多个单词组成时应将中间的词首字母大写,例如:doSomething,doSomethingElse。不仅大小写很重要,还应保证代码可读性。比如方法名,应保证表达清楚且尽量不要啰嗦。另外,还有一些用于框架(framework)的编码规范。例如,属性获取方法(Property accessor methods),必须遵从特定编码规范,从而才可以和KVC或者KVO进行协作。相关章节:编码规范

Prerequisites开始前的准备工作


如果你是苹果开发的新手,建议先去读《Start Developing iOS Apps Today》或者《Start Developing OSX Apps Today》来了解开发苹果平台程序的总体过程。在尝试完成每章末的练习题之前,你还应该了解有关Xcode的一些知识。Xcode是苹果平台上的集成开发环境,使用它可以编写代码,设计应用界面,测试程序及调试程序错误。读者最好是有C或类C高级语言的编程经验(Java,C#),但无经验的初学者不用担心,本文档内有关于C语言的一些基础知识,例如流程控制等。如果你拥有其它高级编程语言的知识(如Ruby或者Python),你应该能够跟上本文档。文档中还讲了一些面向对象编程方法的知识,以及它们在OC中的应用。我们假设你现在已经具备一些面向对象编程的基本概念。如果你对面向对象编程还不熟悉,请阅读这一章:面向对象编程概念。


See Also后记


本文档内容适用于Xcode4.4以上版本,并假设你拥有OSX10.7或iOS5以上版本的目标系统。关于Xcode的更多内容,参见Xcode Overview。关于OC语言的更多可用功能,参见Objective-C Feature Availability IndexOC中通过引用计数(Reference Counting)来判断对象的生命期。大多数情况下,OC中自带的ARC(Automatic Reference Counting)功能都能很好地回收对象空间。但如果你不想使用ARC,或者想重构或者维护老的只能手动回收内存的代码,你应该读Advanced Memory Management Programming Guide.另外关于编译器,OC语言使用运行时系统来支持动态和面向对象功能。OC支持同运行时系统进行直接交互,但多数情况下你并不必深究OC的运行时系统如何工作的。参见Objective-C Runtime Programming Guide和Objective-C Runtime Reference.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值