Objective-C程序设计(第6版 英文版)

Objective-C程序设计(第6版 英文版) pdf epub mobi txt 电子书 下载 2025

[美] Stephen G.Kochan(史蒂芬.G.寇肯) 著
图书标签:
  • Objective-C
  • Programming
  • iOS
  • Cocoa
  • Apple
  • Software Development
  • Computer Science
  • 6th Edition
  • 英文版
  • Programming Language
想要找书就要到 新城书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 电子工业出版社
ISBN:9787121272752
版次:6
商品编码:11902936
品牌:Broadview
包装:平装
丛书名: 原味精品书系
开本:16开
出版时间:2016-03-01
用纸:胶版纸
页数:544
正文语种:英文

具体描述

产品特色

内容简介

  本书是为在苹果iOS 和OS X 平台上,使用Objective-C 语言和面向对象程序设计模式进行专业开发而编写的简洁、细致的入门读物。本书假设读者无面向对象程序语言或C 语言编程经验,以保障初学者与有经验的程序员一样,可用本书迅速和有效地学习Objective-C。本书提供的学习方法独特,配有众多程序示例及章末练习,适合自学和课堂教学。第6 版已全面更新,充分纳入Objective-C 的新功能与技术,同时覆盖对新版Xcode、iOS 和Mac OS X Mavericks 的介绍。

作者简介

  Stephen G. Kochan,是多本畅销书的作者或合著者, 其中有关于C 语言的, 包括Programming in C(Sams,2004)、Programming in ANSI C(Sams,1994) 和Topics in CProgramming(Wiley,1991),也有关于UNIX 的,包括Exploring the UNIX System(Sams,1992)和UNIX Shell Programming(Sams,2003)。从1984 年Mac 最初引进时,他就开始在Macintosh 计算机上编程了,他编写的Programming C for the Mac 是Apple Press Library的一部分。2003 年,Kochan 编写了Programming in Objective-C(Sams,2003),之后编写了另一本与Mac 有关的书籍Beginning AppleScript(Wiley,2004)。

目录

1 Introduction
What You Will Learn from This Book
How This Book Is Organized
Support
Acknowledgments
Preface to the Sixth Edition
I: The Objective-C Language
2 Programming in Objective-C
Compiling and Running Programs
Using Xcode
Using Terminal
Explanation of Your First Program
Displaying the Values of Variables
Summary
Exercises
3 Classes, Objects, and Methods
What Is an Object, Anyway?
Instances and Methods
An Objective-C Class for Working with Fractions
The @interface Section
Choosing Names
Class and Instance Methods
The @implementation Section
The program Section
Accessing Instance Variables and Data Encapsulation
Summary
Exercises
4 Data Types and Expressions
Data Types and Constants
Type int
Type float
Type char
Qualifiers: long, long long, short, unsigned, and signed
Type id
Arithmetic Expressions
Operator Precedence
Integer Arithmetic and the Unary Minus Operator
The Modulus Operator
Integer and Floating-Point Conversions
The Type Cast Operator
Assignment Operators
A Calculator Class
Exercises
5 Program Looping
The for Statement
Keyboard Input
Nested for Loops
for Loop Variants
The while Statement
The do Statement
The break Statement
The continue Statement
Summary
Exercises
6 Making Decisions
The if Statement
The if-else Construct
Compound Relational Tests
Nested if Statements
The else if Construct
The switch Statement
Boolean Variables
The Conditional Operator
Exercises
7 More on Classes
Separate Interface and Implementation Files
Synthesized Accessor Methods
Accessing Properties Using the Dot Operator
Multiple Arguments to Methods
Methods without Argument Names
Operations on Fractions
Local Variables
Method Arguments
The static Keyword
The self Keyword
Allocating and Returning Objects from Methods
Extending Class Definitions and the Interface File
Exercises
8 Inheritance
It All Begins at the Root
Finding the Right Method
Extension through Inheritance: Adding New Methods
A Point Class and Object Allocation
The @class Directive
Classes Owning Their Objects
Overriding Methods
Which Method Is Selected?
Abstract Classes
Exercises
9 Polymorphism, Dynamic Typing, and Dynamic Binding
Polymorphism: Same Name, Different Class
Dynamic Binding and the id Type
Compile Time Versus Runtime Checking
The id Data Type and Static Typing
Argument and Return Types with Dynamic Typing
Asking Questions about Classes
Exception Handling Using @try
Exercises
10 More on Variables and Data Types
Initializing Objects
Scope Revisited
More on Properties, Synthesized Accessors, and Instance Variables
Global Variables
Static Variables
Enumerated Data Types
The typedef Statement
Data Type Conversions
Conversion Rules
Bit Operators
The Bitwise AND Operator
The Bitwise Inclusive-OR Operator
The Bitwise Exclusive-OR Operator
The Ones Complement Operator
The Left-Shift Operator
The Right-Shift Operator
Exercises
11 Categories and Protocols
Categories
Class Extensions
Some Notes about Categories
Protocols and Delegation
Delegation
Informal Protocols
Composite Objects
Exercises
12 The Preprocessor
The #define Statement
More Advanced Types of Definitions
The #import Statement
Conditional Compilation
The #ifdef , #endif , #else , and #ifndef Statements
The #if and #elif Preprocessor Statements
The #undef Statement
Exercises
13 Underlying C Language Features
Arrays
Initializing Array Elements
Character Arrays
Multidimensional Arrays
Functions
Arguments and Local Variables
Returning Function Results
Functions, Methods, and Arrays
Blocks
Structures
Initializing Structures
Structures within Structures
Additional Details about Structures
Don’t Forget about Object-Oriented Programming!
Pointers
Pointers and Structures
Pointers, Methods, and Functions
Pointers and Arrays
Operations on Pointers
Pointers and Memory Addresses
They’re Not Objects!
Miscellaneous Language Features
Compound Literals
The goto Statement
The Null Statement
The Comma Operator
The sizeof Operator
Command-Line Arguments
How Things Work
Fact 1: Instance Variables Are Stored in Structures
Fact 2: An Object Variable Is Really a Pointer
Fact 3: Methods Are Functions, and Message Expressions Are Function Calls
Fact 4: The id Type Is a Generic Pointer Type
Exercises
II: The Foundation Framework
14 Introduction to the Foundation Framework
Foundation Documentation
15 Numbers, Strings, and Collections
Number Objects
String Objects
More on the NSLog Function
The description Method
Mutable Versus Immutable Objects
Mutable Strings
Array Objects
Making an Address Book
Sorting Arrays
Dictionary Objects
Enumerating a Dictionary
Set Objects
NSIndexSet
Exercises
16 Working with Files
Managing Files and Directories: NSFileManager
Working with the NSData Class
Working with Directories
Enumerating the Contents of a Directory
Working with Paths: NSPathUtilities.h
Common Methods for Working with Paths
Copying Files and Using the NSProcessInfo Class
Basic File Operations: NSFileHandle
The NSURL Class
The NSBundle Class
Exercises
17 Memory Management and Automatic Reference Counting
Automatic Garbage Collection
Manual Reference Counting
Object References and the Autorelease Pool
The Event Loop and Memory Allocation
Summary of Manual Memory Management Rules
Automatic Reference Counting
Strong Variables
Weak Variables
@autoreleasepool Blocks
Method Names and Non-ARC Compiled Code
18 Copying Objects
The copy and mutableCopy Methods
Shallow Versus Deep Copying
Implementing the <NSCopying> Protocol
Copying Objects in Setter and Getter Methods
Exercises
19 Archiving
Archiving with XML Property Lists
Archiving with NSKeyedArchiver
Writing Encoding and Decoding Methods
Using NSData to Create Custom Archives
Using the Archiver to Copy Objects
Exercises
III: Cocoa, Cocoa Touch, and the iOS SDK
20 Introduction to Cocoa and Cocoa Touch
Framework Layers
Cocoa Touch
21 Writing iOS Applications
The iOS SDK
Your First iPhone Application
Creating a New iPhone Application Project
Entering Your Code
Designing the Interface
An iPhone Fraction Calculator
Starting the New Fraction_Calculator Project
Defining the View Controller
The Fraction Class
A Calculator Class That Deals with Fractions
Designing the User Interface
Summary
Exercises
Appendixes
A Glossary
B Address Book Example Source Code
Index

前言/序言


《Objective-C程序设计(第6版 英文版)》是一本旨在为开发者提供深入理解Objective-C语言核心概念和高级特性的权威指南。本书内容全面,覆盖了从语言基础到实际开发中常用的高级技巧,旨在帮助读者构建高效、稳定且富有表现力的iOS和macOS应用程序。 第一部分:Objective-C语言基础 本书的开篇将带领读者系统地学习Objective-C语言的基础知识。首先,我们将深入探讨Objective-C的面向对象特性,这是其与C语言最根本的区别。您将理解类(Class)、对象(Object)、消息传递(Message Passing)的核心概念,以及如何声明和实例化类。我们将详细讲解属性(Properties)的声明和访问,包括getter和setter方法,以及如何使用原子性(Atomicity)和内存管理策略(如`strong`, `weak`, `assign`, `copy`)来确保数据的安全和一致性。 接着,我们将专注于Objective-C的消息传递机制。理解对象如何响应消息,以及消息的动态分派过程,是掌握Objective-C的关键。本书将解释方法解析(Method Resolution)、消息转发(Message Forwarding)等概念,并演示如何在运行时动态地调用方法。 协议(Protocols)在Objective-C开发中扮演着至关重要的角色,本书将对其进行详尽的讲解。您将学习如何定义协议、声明协议方法,以及如何让类遵循协议。我们将探讨协议在实现委托模式(Delegate Pattern)、数据源模式(Data Source Pattern)等设计模式中的应用,以及如何利用协议编写更灵活、可复用的代码。 块(Blocks)是Objective-C中一种强大的代码封装机制,本书将对其进行深入剖析。您将学习如何声明和使用块,以及块的闭包(Closure)特性。我们将展示块在处理异步操作、集合遍历、动画回调等场景中的广泛应用,并讲解块的捕获变量(Captured Variables)机制和内存管理注意事项。 第二部分:面向对象编程的高级概念与实践 在奠定坚实的基础之后,本书将进一步深入探索Objective-C的面向对象编程的高级主题。我们将详细讲解继承(Inheritance)和多态(Polymorphism),以及它们如何支持代码的重用和扩展。您将学习如何设计清晰的类层次结构,并理解子类与父类之间的关系。 分类(Categories)和扩展(Extensions)是Objective-C特有的特性,本书将对其进行详细介绍。您将学习如何为现有类添加新方法,以及如何向类声明私有方法(Private Methods)和属性(Properties)。我们将展示分类和扩展在解耦代码、增加功能以及改善代码组织结构方面的强大能力。 内存管理是Objective-C开发中的一个重要环节。本书将全面讲解Objective-C的内存管理机制,包括自动引用计数(Automatic Reference Counting, ARC)的工作原理。您将深入理解`strong`, `weak`, `unowned`, `assign`等修饰符的作用,并学习如何避免常见的内存泄漏(Memory Leaks)和悬空指针(Dangling Pointers)问题。对于非ARC环境,本书也将提供相关的知识和实践指导。 KVO(Key-Value Observing)和通知(Notifications)是Objective-C中实现对象间通信和状态同步的两种常用机制。本书将详细讲解KVO的原理和用法,包括如何注册观察者、响应键值变化,以及如何安全地移除观察者。同时,我们也会深入探讨通知中心(Notification Center)的机制,学习如何发布和接收通知,并将其应用于解耦组件之间的通信。 第三部分:Cocoa Touch和Foundation框架的核心组件 本书将引导读者掌握构建iOS和macOS应用程序所必需的Cocoa Touch和Foundation框架的核心组件。您将学习Foundation框架提供的基本数据类型,如`NSString`, `NSArray`, `NSDictionary`, `NSNumber`,以及它们的使用方法。我们将深入探讨字符串处理、集合操作、属性列表(Property Lists)的读写等常用功能。 对于iOS开发,本书将重点介绍Cocoa Touch框架。您将深入理解View Controller的生命周期(View Controller Lifecycle),以及如何管理用户界面元素的显示和交互。我们将详细讲解UI元素,如`UIView`, `UILabel`, `UIButton`, `UITextField`, `UITableView`, `UICollectionView`等,并演示如何使用Auto Layout(自动布局)来创建适应不同屏幕尺寸的响应式界面。 事件处理和用户交互是iOS应用的核心。本书将详细讲解如何响应用户触摸事件、手势(Gestures)的识别和处理,以及如何通过Target-Action模式和Delegate模式来处理用户交互。 网络通信在现代应用程序中不可或缺。本书将介绍Foundation框架中的网络类,如`URLSession`,以及如何进行HTTP请求、处理JSON数据。您将学习如何实现数据下载、上传,以及如何处理网络错误。 第四部分:高级开发主题与最佳实践 为了帮助开发者写出更健壮、可维护的代码,本书将深入探讨一些高级开发主题和最佳实践。我们将重点讲解Objective-C中的多线程编程,包括GCD(Grand Central Dispatch)和NSOperation。您将学习如何创建和管理并发任务,如何避免数据竞争(Data Races),以及如何处理UI更新的线程安全问题。 设计模式在Objective-C开发中至关重要。本书将介绍并演示多种经典的设计模式,如单例模式(Singleton Pattern)、工厂模式(Factory Pattern)、观察者模式(Observer Pattern)、MVC(Model-View-Controller)、MVVM(Model-View-ViewModel)等。您将学习如何选择合适的设计模式来解决常见的开发问题,并提高代码的可读性和可维护性。 错误处理和调试是开发过程中不可或缺的技能。本书将讲解Objective-C的错误处理机制,包括`NSError`对象的使用,以及异常处理(Exception Handling)。同时,我们也将分享实用的调试技巧,帮助您快速定位和解决代码中的bug。 性能优化是提升应用程序用户体验的关键。本书将提供关于代码性能优化的指导,包括如何识别性能瓶颈,如何优化算法和数据结构,以及如何利用Instruments等工具进行性能分析。 第五部分:现代Objective-C开发实践 随着Swift语言的兴起,Objective-C与Swift的互操作性变得日益重要。本书将介绍如何在Objective-C项目中引入Swift代码,以及如何管理两者之间的桥接(Bridging)。您将学习如何在Objective-C代码中调用Swift类和方法,以及如何在Swift代码中访问Objective-C对象。 测试是保证软件质量的重要手段。本书将介绍Objective-C的单元测试(Unit Testing)和UI测试(UI Testing)。您将学习如何使用XCTest框架编写和运行测试用例,以及如何为您的应用程序构建可靠的测试套件。 最后,本书将提供关于代码规范、版本控制(如Git)以及持续集成/持续部署(CI/CD)等现代软件开发实践的建议,帮助读者构建高质量的应用程序并保持项目的健康发展。 通过对《Objective-C程序设计(第6版 英文版)》的学习,开发者将能够全面掌握Objective-C语言的精髓,熟练运用Cocoa Touch和Foundation框架,并能够运用高级开发技术和最佳实践来构建出色的iOS和macOS应用程序。

用户评价

评分

不仅仅是语法书,更是思维训练营 很多人学习编程语言,往往停留在“知其然”的阶段,即学会了语法,但不知道“所以然”。《Objective-C程序设计(第6版 英文版)》则成功地突破了这一局限。它不仅仅是一本语法书,更是一本帮助你建立Objective-C思维模式的训练营。书中对很多概念的解释,都不仅仅是“是什么”,更是“为什么这样”。比如,当讲解到Category时,它不仅告诉你如何使用,更深入地分析了Category存在的意义和潜在的风险,从而引导读者在实际开发中做出更明智的选择。书中还穿插了一些关于编程哲学和工程伦理的讨论,这让我意识到,成为一名优秀的程序员,除了技术能力,更需要具备良好的职业素养。我特别喜欢书中关于重构的章节,它教会了我如何优雅地改进现有代码,而不仅仅是添加新功能。这种从“能写”到“写得好”的转变,是这本书带给我的最宝贵的财富。它让我明白,编程不仅仅是敲代码,更是一种解决问题、创造价值的艺术。

评分

初学者心中的明灯,实践之路的坚实伙伴 作为一名刚刚踏入Objective-C编程领域的新手,我曾对iOS开发充满向往,却也为初学者教程的晦涩难懂感到沮丧。直到我遇到了这本《Objective-C程序设计(第6版 英文版)》。它的语言风格简直是为我量身定制的——清晰、简洁,而且充满耐心。作者仿佛一位经验丰富的导师,一步步引导我理解那些看似复杂的概念。从最基础的变量、数据类型,到面向对象编程的核心——类、对象、继承和多态,书中都给出了详尽的解释,并且辅以大量的代码示例。这些示例并非生硬的理论堆砌,而是真正能够运行并展示效果的小项目,这让我能够立刻将所学知识付诸实践。我尤其喜欢书中关于内存管理的部分,ARC(自动引用计数)的讲解深入浅出,让我这个新手不再对内存泄漏感到恐惧。每一章节的结尾都有练习题,这些题目很有挑战性,但又不会过于刁钻,完成它们能极大地巩固我所学的知识。对我而言,这本书最大的价值在于它让我感受到了编程的乐趣,而不是枯燥的学习。它点燃了我学习的热情,让我相信通过努力,我一定能掌握iOS开发的技能。

评分

清晰的逻辑脉络,循序渐进的学习体验 在寻找一本真正能够帮助我系统学习Objective-C的书籍时,《Objective-C程序设计(第6版 英文版)》以其清晰的逻辑结构和循序渐进的讲解方式脱颖而出。从最基础的概念开始,书中层层递进,确保读者在掌握前一个知识点后,才能顺利进入下一个阶段的学习。我喜欢它不会一开始就抛出大量难以理解的术语,而是用一种非常自然的方式,将抽象的概念具象化。例如,当介绍协议(Protocol)时,作者并没有直接给出协议的定义,而是通过一个实际的场景,比如“不同对象如何协同工作”,来引出协议的作用和重要性。这种“情境化”的学习方式,让我更容易理解概念背后的逻辑,并将其与实际应用联系起来。书中的示例代码也很有条理,它们都有明确的目的,并且随着章节的深入,代码的复杂度也会逐步提升,这恰好与读者的学习曲线相匹配。我曾经尝试过其他一些Objective-C的书籍,但很多都显得碎片化,缺乏连贯性。而这本书,就像一条清晰的河流,引导我沿着正确的方向,稳步前进,最终抵达知识的彼岸。

评分

简洁高效的典范,工程实践的基石 在我看来,《Objective-C程序设计(第6版 英文版)》是一本极其注重实用的教科书。它不仅仅教授Objective-C的语法,更强调如何在实际的iOS开发项目中高效地运用这门语言。书中穿插了大量真实世界的开发场景和最佳实践,例如如何设计健壮的API、如何有效地进行单元测试、以及如何在大型项目中组织代码结构。作者的叙述风格非常直接,直击痛点,不绕弯子。我尤其欣赏书中关于设计模式应用的章节,例如MVC、MVVM等,以及如何利用Objective-C的特性来实现这些模式。这让我意识到,仅仅掌握语法是远远不够的,更重要的是如何利用语言的优势来构建可维护、可扩展、高性能的应用程序。书中关于性能优化的建议也非常有价值,它教会我如何识别性能瓶颈,并提供切实可行的解决方案。对我而言,这本书更像是一本“武功秘籍”,它不仅传授了我招式,更教会了我如何运用这些招式去“打败”复杂的工程问题,成为一名更优秀的iOS开发者。

评分

老兵的重拾利器,深度探索的引路人 作为一名在OC领域摸爬滚打多年的开发者,我原本以为自己对Objective-C已经了如指掌。然而,翻阅《Objective-C程序设计(第6版 英文版)》后,我发现自己还有太多未曾深入了解的角落。这本书的深度和广度都超出了我的预期。它不仅仅停留在语法层面,更深入地探讨了Objective-C的底层机制,例如消息传递的本质、运行时(Runtime)的强大功能,以及Objective-C与C、C++之间的交互。作者对这些复杂概念的阐述,既有理论的高度,又不失实践的指导。我尤其对书中关于Objective-C Runtime的章节印象深刻,它揭示了动态性背后的奥秘,让我对Objective-C的灵活性有了更深刻的认识。此外,书中还触及了一些高级主题,如block的底层实现、GCD(Grand Central Dispatch)的高级用法、以及Foundation框架中的一些鲜为人知的优化技巧。对于我这样想要进一步提升自身技术水平的开发者来说,这本书无疑提供了一条通往深度探索的清晰路径,它让我重新审视了自己过去的认知,并激发了更多关于代码优化和性能提升的思考。

评分

是正版的。

评分

评分

全英文版,这类书不多,难得有一本,内容写得挺好够详细,

评分

书页发黄,影响心情

评分

评分

评分

是正版的。

评分

全英文版,这类书不多,难得有一本,内容写得挺好够详细,

评分

是正版的。

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有