`

NSArray

 
阅读更多

NSArray

main.m
#import <Foundation/NSArray.h>
#import <Foundation/NSString.h>
#import <Foundation/NSAutoreleasePool.h>
#import <Foundation/NSEnumerator.h>
#import <stdio.h>
void print( NSArray *array ) {
NSEnumerator *enumerator = [array objectEnumerator];
id obj;
while ( obj = [enumerator nextObject] ) {
printf( "%s\n", [[obj description] cString] );
}
}
int main( int argc, const char *argv[] ) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSArray *arr = [[NSArray alloc] initWithObjects:
@"Me", @"Myself", @"I", nil];
NSMutableArray *mutable = [[NSMutableArray alloc] init];
// enumerate over items
printf( "----static array\n" );
print( arr );
// add stuff
[mutable addObject: @"One"];
[mutable addObject: @"Two"];
[mutable addObjectsFromArray: arr];
[mutable addObject: @"Three"];
// print em
printf( "----mutable array\n" );
print( mutable );
// sort then print

[mutable sortUsingSelector: @selector( caseInsensitiveCompare: )];
print( mutable );
// free memory
[arr release];
[mutable release];
[pool release];
return 0;
}
output
----static array
Me
Myself
I
----mutable array
One
Two
Me
Myself
I
Three
----sorted mutable array
I
Me
Myself
One
Three
Two
陣列有兩種(通常是 Foundation classes 中最資料導向的部分),NSArray 跟
NSMutableArray,顧名思義,mutable(善變的)表示可以被改變,而 NSArray
則不行。這表示你可以製造一個 NSArray 但卻不能改變它的長度。
你可以用 Obj, Obj, Obj, ..., nil 為參數呼叫建構子來初始化一個陣列,其中 nil 表
示結尾符號。
排序(sorting)展示如何用 selector 來排序一個物件,這個 selector 告訴陣列用
NSString 的忽略大小寫順序來排序。如果你的物件有好幾個排序方法,你可以使
用這個 selector 來選擇你想用的方法。
在 print method 裡,我使用了 description method。它就像 Java 的 toString,會回
傳物件的 NSString 表示法。
NSEnumerator 很像 Java 的列舉系統。while ( obj = [array objectEnumerator] ) 行得
通的理由是 objectEnumerator 會回傳最後一個物件的 nil。在 C 裡 nil 通常代表
0,也就是 false。改用 ( ( obj = [array objectEnumerator] ) != nil ) 也許更好。

分享到:
评论

相关推荐

    NSArray排序demo

    在iOS和Mac开发中,`NSArray`是Foundation框架中的一个核心类,用于存储有序的、不可变的对象集合。本篇文章将深入探讨`NSArray`的排序方法,并通过一个名为"NSArrayDemo"的示例来演示如何对数组进行排序。 首先,...

    Object C 字符串和数组NSString NSArray操作

    Object C 字符串和数组NSString NSArray操作

    cydjohn#blogMarkdown#NSArray二维数组的定义1

    NSArray *arr = [[NSArray alloc] initWithObjects:如果要初始化1000项,可以这样:当然换成swift就超级简单了

    iphone 开发学习基础NSArray

    本教程将带你深入理解NSArray的基础,包括固定数组(NSArray)和可变数组(NSMutableArray),以及如何创建简单的类文件和使用方法。 首先,我们来看NSArray。NSArray是一个不可变的对象容器,一旦创建,其内部对象...

    NSArray,NSSet,NSEnumerator,NSDictionary及对应Mutable介绍

    这些类包括NSArray、NSSet、NSEnumerator和NSDictionary,以及它们的可变版本NSMutableArray、NSMutableSet和NSMutableDictionary。这些类提供了各种操作来处理对象的集合,如添加、删除、查找等。以下是关于这些类...

    Swift-NSArray数组的使用

    在Swift编程语言中,NSArray是Objective-C的遗留数据结构,但在Swift中,通常我们会使用更安全、类型安全的`Array`结构体。然而,由于Swift与Objective-C的互操作性,有时我们仍需要与NSArray进行交互。这篇我们将...

    Iphone数组一些基础操作 NSArray/NSMutableArray

    NSArray和NSMutableArray是两个常用的数组类,分别代表不可变数组和可变数组。下面将详细介绍这两个类的一些基础操作。 首先,创建NSArray的基本方法是通过`initWithObjects:`初始化,如: ```objc NSArray *array ...

    OC-NSArray数组的使用Demol

    在Objective-C(简称OC)中,NSArray是一个非常基础且重要的数据结构,用于存储有序的、不可变的对象集合。本教程将深入探讨NSArray的使用方法,包括创建、添加元素、遍历数组、查找元素以及与其他数据结构的交互。 ...

    oc.zip_NSArray_NSDictionary_去空

    在iOS开发中,`NSArray` 和 `NSDictionary` 是两种非常重要的数据结构,分别用于存储有序的元素集合(数组)和键值对集合(字典)。然而,在处理实际数据时,我们常常会遇到空值(nil 或 NSNull)的情况,这可能导致...

    NSArray,NSSet,NSDictionary超详细用法说明

    在iOS和Objective-C(OC)开发中,NSArray、NSSet和NSDictionary是Foundation框架中的核心数据结构,它们用于存储和管理对象。这些容器类提供了多种方法来操作和访问存储的数据,是编写应用程序时不可或缺的部分。 ...

    NSArray越界崩溃解决方法

    NSArray是Objective-C中的一个基础数据结构,用于存储和管理有序的对象集合。当尝试访问数组中不存在的索引时,就会发生数组越界(Array Index Out Of Bounds)的问题。在开发过程中,这种错误在debug模式下通常会...

    一些NSArray,NSDictionary,NSSet相关的算法知识1

    在iOS编程中,NSArray、NSDictionary和NSSet是常用的集合类,它们提供了存储和操作对象的方式。这些集合类在实际开发中扮演着重要角色,理解和优化它们的使用能够显著提高代码的性能和准确性。以下是对这些集合类...

    NSString NSArray NSDictionary 方法名释义

    NSString NSArray NSDictionary 方法名释义

    IOS 开发之 NSMutableArray与NSArray 的区别

    IOS 开发之 NSMutableArray 与 NSArray 的区别 在 IOS 开发中,NSMutableArray 和 NSArray 是两个非常重要的集合类,它们都是 Foundation 框架的一部分。在本文中,我们将详细介绍 NSMutableArray 和 NSArray 的...

    iOS原生正则表达式以及NSArray快捷过滤

    NSPredicate应用,包括以下几个部分: 1、字符串,正则表达式的匹配; 2、字符串数组NSArray和NSMutableArray的快捷过滤方式; 3、自定义对象数组NSArray和NSMutableArray的快捷过滤方式;

    iOS中NSArray数组常用处理方式

    1. 数组的常用处理方式 //--------------------不可变数组 //1....NSString *s1 = @zhangsan; NSString *s2 = @lisi; NSString *s3 = @wangwu;...NSArray *array1 = [[NSArray ...NSArray *array2 = [NSArray arrayWithOb

    NSArray,NSSet,NSEnumerator,NSDictionary及对应Mutable介绍的示例程序

    这是NSArray,NSSet,NSEnumerator,NSDictionary及对应Mutable介绍的示例程序,具体参考: http://blog.csdn.net/htttw/article/details/7884218

    safely安全使用NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSMutableString。-Swift开发

    FFSafeKit安全地使用NSArray,NSMutableArray,NSDictionary,NSMutableDictionary,NSMutableString。 功能安全访问NSArray安全访问NSDictionary安全访问并执行更改FFSafeKit安全地使用NSArray,NSMutableArray,...

    Objective-C中NSArray的基本用法示例

    NSArray的排序 代码如下: + (id)studentWithFirstName:(NSString *)firstName lastName:(NSString *)lastName{     Student *stu = [[Student alloc] init];     stu.firstName = firstName;   stu....

    将字典(NSDictionary)和数组(NSArray)打印的Log显示为Json格式.zip

    将字典(NSDictionary)和数组(NSArray)打印的Log显示为Json格式。.zip,将字典(NSDictionary)和数组(NSArray)打印的Log显示为Json格式。直接将分类拖入到工程即可使用。

Global site tag (gtag.js) - Google Analytics