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的語法,更強調如何在實際的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框架中的一些鮮為人知的優化技巧。對於我這樣想要進一步提升自身技術水平的開發者來說,這本書無疑提供瞭一條通往深度探索的清晰路徑,它讓我重新審視瞭自己過去的認知,並激發瞭更多關於代碼優化和性能提升的思考。

評分

初學者心中的明燈,實踐之路的堅實夥伴 作為一名剛剛踏入Objective-C編程領域的新手,我曾對iOS開發充滿嚮往,卻也為初學者教程的晦澀難懂感到沮喪。直到我遇到瞭這本《Objective-C程序設計(第6版 英文版)》。它的語言風格簡直是為我量身定製的——清晰、簡潔,而且充滿耐心。作者仿佛一位經驗豐富的導師,一步步引導我理解那些看似復雜的概念。從最基礎的變量、數據類型,到麵嚮對象編程的核心——類、對象、繼承和多態,書中都給齣瞭詳盡的解釋,並且輔以大量的代碼示例。這些示例並非生硬的理論堆砌,而是真正能夠運行並展示效果的小項目,這讓我能夠立刻將所學知識付諸實踐。我尤其喜歡書中關於內存管理的部分,ARC(自動引用計數)的講解深入淺齣,讓我這個新手不再對內存泄漏感到恐懼。每一章節的結尾都有練習題,這些題目很有挑戰性,但又不會過於刁鑽,完成它們能極大地鞏固我所學的知識。對我而言,這本書最大的價值在於它讓我感受到瞭編程的樂趣,而不是枯燥的學習。它點燃瞭我學習的熱情,讓我相信通過努力,我一定能掌握iOS開發的技能。

評分

清晰的邏輯脈絡,循序漸進的學習體驗 在尋找一本真正能夠幫助我係統學習Objective-C的書籍時,《Objective-C程序設計(第6版 英文版)》以其清晰的邏輯結構和循序漸進的講解方式脫穎而齣。從最基礎的概念開始,書中層層遞進,確保讀者在掌握前一個知識點後,纔能順利進入下一個階段的學習。我喜歡它不會一開始就拋齣大量難以理解的術語,而是用一種非常自然的方式,將抽象的概念具象化。例如,當介紹協議(Protocol)時,作者並沒有直接給齣協議的定義,而是通過一個實際的場景,比如“不同對象如何協同工作”,來引齣協議的作用和重要性。這種“情境化”的學習方式,讓我更容易理解概念背後的邏輯,並將其與實際應用聯係起來。書中的示例代碼也很有條理,它們都有明確的目的,並且隨著章節的深入,代碼的復雜度也會逐步提升,這恰好與讀者的學習麯綫相匹配。我曾經嘗試過其他一些Objective-C的書籍,但很多都顯得碎片化,缺乏連貫性。而這本書,就像一條清晰的河流,引導我沿著正確的方嚮,穩步前進,最終抵達知識的彼岸。

評分

不僅僅是語法書,更是思維訓練營 很多人學習編程語言,往往停留在“知其然”的階段,即學會瞭語法,但不知道“所以然”。《Objective-C程序設計(第6版 英文版)》則成功地突破瞭這一局限。它不僅僅是一本語法書,更是一本幫助你建立Objective-C思維模式的訓練營。書中對很多概念的解釋,都不僅僅是“是什麼”,更是“為什麼這樣”。比如,當講解到Category時,它不僅告訴你如何使用,更深入地分析瞭Category存在的意義和潛在的風險,從而引導讀者在實際開發中做齣更明智的選擇。書中還穿插瞭一些關於編程哲學和工程倫理的討論,這讓我意識到,成為一名優秀的程序員,除瞭技術能力,更需要具備良好的職業素養。我特彆喜歡書中關於重構的章節,它教會瞭我如何優雅地改進現有代碼,而不僅僅是添加新功能。這種從“能寫”到“寫得好”的轉變,是這本書帶給我的最寶貴的財富。它讓我明白,編程不僅僅是敲代碼,更是一種解決問題、創造價值的藝術。

評分

書頁發黃,影響心情

評分

書頁發黃,影響心情

評分

評分

是正版的。

評分

全英文版,這類書不多,難得有一本,內容寫得挺好夠詳細,

評分

書頁發黃,影響心情

評分

書頁發黃,影響心情

評分

全英文版,這類書不多,難得有一本,內容寫得挺好夠詳細,

評分

全英文版,這類書不多,難得有一本,內容寫得挺好夠詳細,

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

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