Just My Life & My Work

Archive for 2012 年 10 月 03 日

[Objective C] NSArray

來練習一下NSArray怎麼寫吧!屬於不可變 (immutable) 的物件種類,裡頭可以放任何的型態的物件。

常用方法如下:

  • +(id) arrayWithObjects: (id) firstObj, …
    將多個物件當做陣列的初始值,最後以 nil 結束
  • -(NSUInteger) count
    回傳陣列儲存的物件數量
  • -(NSUInteger) indexOfObject: (id) anObject
    若陣列中有物件 anObject,則回傳此物件於陣列中的索引值,否則回傳 NSNotFound
  • -(id) objectAtIndex: (NSUInteger) index
    回傳陣列索引值為 index 的物件
  • -(void) makeObjectsPerformSelector: (SEL) aSelector
    對陣列內所有物件執行 aSelector 方法

範例程式碼:


//
//  main.m
//  HappyMan's Program - NSArray
//  Xcode 4.5
//  Created by ShengWen on 12/9/26.
//  Copyright (c) 2012年 ShengWen. All rights reserved.
//  https://cg2010studio.wordpress.com/

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSString* str1 = @"HappyMan";
    NSString* str2 = @"WaterMan";
    NSString* str3 = @"BrightMan";
    NSArray* mArray;

    // 將物件加入 array
    mArray = [NSArray arrayWithObjects: str1, str2, str3, nil];
    NSInteger count = [mArray count];
    for(int i=0;i<count;i++){
        NSLog(@"index: %i, value: %@", i, [mArray objectAtIndex: i]);
    }

    // 取得物件的所在位置
    NSInteger index;
    if ((index = [mArray indexOfObject:@"WaterMan"]) != NSNotFound) {
        NSLog(@"陣列的第%li個位置,值為%@", index, [mArray objectAtIndex:index]);
    }
    return 0;
}

執行結果:

2012-10-03 22:57:40.546 HappyMan’s First Program[2451:403] index: 0, value: HappyMan

2012-10-03 22:57:40.548 HappyMan’s First Program[2451:403] index: 1, value: WaterMan

2012-10-03 22:57:40.549 HappyMan’s First Program[2451:403] index: 2, value: BrightMan

2012-10-03 22:57:40.549 HappyMan’s First Program[2451:403] 陣列的第1個位置,值為WaterMan

繼續做NSMutableArray的練習吧~

參考:Objective-C 陣列物件NSArray Class ReferenceObjective-C 入門指南 – NSArray

標籤雲

%d 位部落客按了讚: