Skip to Content
COCOA學習手冊--使用OBJECTIVE-C第三版
book

COCOA學習手冊--使用OBJECTIVE-C第三版

by Paris Buttfield-Addison, Jonathon Manning
June 2013
Intermediate to advanced
360 pages
6h 50m
Chinese
GoTop Information, Inc.
Content preview from COCOA學習手冊--使用OBJECTIVE-C第三版
38
|
第三章
有可能建立既有物件的可變版本(反之亦然—可以建立可變物件的不可變版本)。例
如,下面說明如何從
NSArray
建立
NSMutableArray
(本章稍後會更詳細地探討兩者的
細節)︰
// 在此,'someArray' NSArray
NSMutableArray* mutableArray = [NSMutableArray arrayWithArray:someArray];
可變和不可變物件各有用途。絕大部分而言,你會在撰寫 Mac iOS 應用程式時使用不
可變物件;在 Cocoa 裡,物件經常四處被傳遞,而且,這有助於確保,如果將
NSArray
傳遞給另一個方法,該方法不能夠改變陣列的內容。如果你來自於物件通常可變的開發
環境,例如 Java,對於在可變與不可變物件之間的語言層級上的區別可能會感到有點陌
生。不過,隨著時間推移,你可能會發現區別兩者確實是很有用的。
類別的可變版本往往是不可變版本的子類別,亦即,
NSMutableArray
NSMutableString
分別是
NSArray
NSString
的子類別。這表示,如果某方
法接受
NSArray
作為參數,你也可以傳進
NSMutableArray
,一樣能夠運作。
基於相同理由,可變物件具有與其不可變之祖先類別完全相同的方法,以
及修改其內容所需要的任何方法。例如,
NSArray
NSMutableArray
都具有
objectAtIndex:
方法,但是
NSMutableArray
才有
addObject:
方法。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

網頁互動式資料視覺化:使用D3

網頁互動式資料視覺化:使用D3

Scott Murray
深入淺出代數

深入淺出代數

Tracey Pilone, Dan Pilone
自然语言处理实战:从入门到项目实践

自然语言处理实战:从入门到项目实践

Sowmya Vajjala, Bodhisattwa Majumder, Anuj Gupta, Harshit Surana

Publisher Resources

ISBN: 9789862768136