容器是让多数程序员又爱又恨的东西。在Cocoa中,容器是如此的简单易用以至于您一旦用过,就会对它们“爱不释手”。Cocoa中的容器类主要有这么几个:NSString、NSArray、NSDictionary、NSSet和NSIndexSet等,它们都是Foundation Framework的一部分。
为什么人们会对Cocoa的容器“爱不释手”呢?
原因一:NSArray、NSDictionary、NSSet都不强制其内部元素类型的一致性。举个简单的例子:
NSString *aString = [NSString stringWithString:@"This is a demo."];
NSNumber *aNumber = [NSNumber numberWithInteger:0];
NSArray *anArray = [[NSArray alloc] initWithObjects:aString, aNumber, nil];
在上述例子中,我们首先建立了一个NSString对象,然后又建立了一个NSNumber对象,最后我们将这两个NSString和NSNumber对象都“塞”到了一个NSArray对象中。
有够爽吧?连想都别想,什么东西都能往里面装(基本类型、结构体除外)!
原因二:容器类的“可修改”和“不可修改”
上面我们展示的NSString、NSArray、NSDictionary、NSSet以及NSIndexSet等,都是容器的“不可修改”的版本。所谓的“不可修改”,指的是这个容器一旦被创建以后,我们就不可以通过代码修改它的集合。那如果我们需要修改(例如添加、删除、替换)这些容器的元素,该怎么办呢?
Cocoa中几乎所有的容器类,都提供了另外一个“可修改”的版本。例如:继承自NSString的NSMutableString、继承自NSArray的NSMutableArray、继承自NSDictionary的NSMutableDictioanry、继承自NSSet的NSMutableSet以及继承自NSIndexSet的NSMutableIndexSet等。这些“可修改”的版本提供了简单直观的方法,用来修改其内部的元素。例如:
NSString *aString = [NSString stringWithString:@"This is a demo."];
NSNumber *aNumber = [NSNumber numberWithInteger:0];
NSMutableArray *aMutableArray = [NSMutableArray array];
[aMutableArray addObject:aString];
[aMutableArray addObject:aNumber];
[aMutableArray removeObjectAtIndex:0];
[aMutableArray removeAllObjects];
在上述代码中,第一、二行建立了一个NSString对象和一个NSNumber对象。第三行建立了一个NSMutableArray对象(也就是一个“可修改”的NSArray对象)。第四、五行通过-addObject:方法分别将第一、二行建立的NSString对象和NSNumber对象加入了这个“可修改”的NSArray里。第六行则是根据我们给定的索引号0,删除了数组中的第一个元素。第七行的-removeAllObjects最后一口气将数组中存在的所有元素统统删除(置空数组)。
分享到:
相关推荐
MemoryAnalyzer-1.11.0.20201202-macosx.cocoa.x86_64.dmg
eclipse-jee-2022-03-R-macosx-cocoa-x86_64.dmg
eclipse-jee-2023-09-R-macosx-cocoa-x86_64.dmg 适用于macOS Intel芯片系统
eclipse-java-2022-06-R-macosx-cocoa-x86_64.dmg 适用于macOS x86_64
JVM分析工具
eclipse-jee-2020-09-R-macosx-cocoa-x86_64.dmg.zip eclipse-jee-2020-09-R-macosx-cocoa-x86_64.dmg.zip eclipse-jee-2020-09-R-macosx-cocoa-x86_64.dmg.zip
CocoaChina的源码中,最核心的部分是基于Apple的Cocoa Touch框架构建的。Cocoa Touch是iOS应用开发的基础,包含了UIKit框架,它提供了一系列的类和接口,用于创建用户界面、处理事件、管理应用程序生命周期等。...
《Cocoa Programming for Mac OS X 4th Edition》是一本专为Mac OS X平台开发者编写的权威指南,全面覆盖了Cocoa框架的核心概念和技术。这本书的第四版详细讲解了如何利用Objective-C语言来构建高质量、高性能的应用...
本文将详细探讨MemoryAnalyzer的版本1.11.0.20201202-macosx.cocoa.x86_64及其在Mac OS平台上的应用。 MemoryAnalyzer工具主要适用于Java应用程序,特别是那些可能出现内存泄漏或过度消耗内存的情况。该工具支持...
eclipse-cpp-2023-06-R-macosx-cocoa-x86_64.dmg 适用于macOS Intel芯片系统
eclipse-jee-2023-06-R-macosx-cocoa-x86_64.dmg 适用于macOS Intel芯片系统
eclipse-java-2019-12-R-macosx-cocoa-x86_64.dmg
《Addison.Wesley.Cocoa.Programming.Developers.Handbook.Dec.2009》是一部专为苹果平台上的Cocoa编程者编写的开发者手册。这本书深入浅出地介绍了Cocoa框架,是iOS和macOS应用开发者的宝贵资源。Cocoa是Apple的...
《PyPI官网下载:maestral-cocoa-1.5.1.tar.gz——探索Python库的奥秘》 PyPI(Python Package Index)是Python开发者的重要资源库,它提供了无数的开源Python库,使得开发工作变得更加高效和便捷。在本文中,我们...
《Cocoa Programming for Mac OS X》是Mac OS X平台下进行软件开发的重要参考资料,特别是对于想要深入理解苹果操作系统核心框架的开发者来说,这本书是必备的学习材料。第四版更新了与最新版本的Mac OS X(现在被...
《Wrox Professional Cocoa Application Security Jun 2010》这本书主要关注的是苹果平台上的Cocoa应用程序的安全性。Cocoa是Apple macOS和iOS操作系统的核心开发框架,用于构建原生的、高性能的应用程序。这本书...
《PyPI上的Pyobjc-framework-Cocoa 6.0.1:连接Python与Apple生态的桥梁》 PyPI(Python Package Index)是Python开发者们的重要资源库,它提供了大量的Python库和模块供全球开发者使用。在PyPI官网上,我们可以...
《Cocoa编程 for Mac OS X 第四版》是Mac OS X平台上进行软件开发的重要参考资料,主要针对Apple的Cocoa框架进行深入讲解。这本书不仅包含了理论知识,还提供了丰富的源代码,帮助读者更好地理解和实践Cocoa编程。 ...
RED_0.8.12.20190521072503-macosx.cocoa.x86_64.zip是一个适用于Mac OS操作系统的软件压缩包,其中包含Eclipse.app,这表明它是一个针对Mac用户的Eclipse定制版本,特别优化用于RED(RobotEditor)集成开发环境。...
另外,"Cocoa.Programming.for.Mac.OS.X.4th.Edition.pdf"可能是本书的电子版,提供了便于在线阅读和参考的格式。书中的每一章都会详细讲解Cocoa框架的各个方面,包括事件处理、窗口和视图、文本编辑、文件操作、...