NSArray的创建(一)

NSArray是OC三大基础数据结构之一, 与字符串, 字典一样的重要. 这里我们来讲解一下Array的一些常用方法以及注意的事项.

其实在OC上创建NSArray有很多方法可以使用.

比如:

initWithObjects: 这个方法就是创建一个字符串数组.

description: 关于这个方法.详情请去看http://www.cnblogs.com/iOSCain/p/4019697.html 

而我这里是利用了重写description的一个方法创建了一个字符串数组, 下面让我们来看看例子吧~

首先我们需要新建一个Cocoa.class文件.

Human.h文件

#import <Foundation/Foundation.h>

@interface Human : NSObject

@end

Human.m文件

#import "Human.h"

@implementation Human

- (NSString *)description
{
    return @"I am a human!";
}

@end

main.m文件

#import <Foundation/Foundation.h>
#import "Human.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //这里我们重写了Description的方法.
        Human *human = [Human new];
        //NSLog(@"human = %@", human);
        //打印description就是打印它的返回值的地址.
        //输出结果是:
        //2014-10-11 20:28:40.062 NSArray[2314:303] human = I am a human!
        //Program ended with exit code: 0
        
        NSArray *array = [[NSArray alloc]initWithObjects:@"One", @"Tow", @"Three", human, nil];
        //为什么这里会使用字符串呢, 那是因为用字符串创建的数组比较的简单.
        //而且数组中装的是元素的地址, 不是值.
        //一个元素可以在多数组中使用.
        NSLog(@"array = %@", array);
        //打印数组, 就是打印数组里的每一个元素.
        //为什么在OC中可以这么简便的打印出数组呢?
        //为什么把human放到数组里的输出结果会是"I am a human!"?
        //那是因为human返回的地址不是一个单词, 而是一个字符串.

        
        [array release];
        [human release];
    
    }
    return 0;
}

输出的结果:

2014-10-12 13:42:51.657 NSArray[1216:303] 
array = (
    One,
    Tow,
    Three,
    "I am a human!"
)
Program ended with exit code: 0
原文地址:https://www.cnblogs.com/iOSCain/p/4020473.html