Just My Life & My Work

[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

Comments on: "[Objective C] NSArray" (1)

  1. […] 對應NSArray,接著來練習NSMutableArray!屬於可變 (mutable) 的物件種類,裡頭可以放任何的型態的物件。 […]

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: