コレクション

Objective-Cには配列を扱う NSArrayクラス、連想配列を扱う NSDictionaryクラス、セットを扱うための NSSetクラスがあります。以下にそれらのコレクションクラスを使った例を記載します。

NSArray

1
2
3
4
5
6
//文字列配列
NSArray *array = @[@"Apple", @"Banana", @"Orange"];
//要素へのアクセス
NSString *apple = array[0];
NSString *banana = array[1];
NSString *orange = array[2];

NSDictionary

1
2
3
4
5
NSDictionary *dict = @{@"Key1" : @"Value1", @"Key2" : @"Value2", @"Key3" : @"Value3"};
//要素へのアクセス
NSString *value1 = dict[@"Key1"];
NSString *value2 = dict[@"Key2"];
NSString *value3 = dict[@"Key3"];

NSSet

1
2
3
NSSet *set = [NSSet setWithObjects:@"Apple", @"Banana", @"Orange", nil];
//要素へのアクセス
NSString *value = [set anyObject];

コレクションオブジェクトは次のようにネストして、階層化されたデータを構成することができます。

1
2
3
4
5
6
7
8
NSArray *array = @[
  @{@"Key1-1" : @"Value1-1", @"Key1-2" : @"Value1-2"},
  @{@"Key2-1" : @"Value2-1", @"Key2-2" : @"Value2-2"},
  @{@"Key3-1" : @"Value3-1", @"Key3-2" : @"Value3-2"}
];
//要素へのアクセス
NSString *value11 = array[0][@"Key1-1"];
NSString *value22 = array[1][@"Key2-2"];

上記の NSArray、NSDictionary、NSSetクラスは、不変オブジェクトしか作成できないので、可変オブジェクトを作成する時はそれぞれ NSMutableArrayクラス、NSMutableDictionaryクラス、NSMutableSetクラスを使用します。以下はそれらを使用したコードの例です。

NSMutableArray

1
2
3
4
5
6
//不変オブジェクト
NSArray *array = @[@"Apple", @"Banana", @"Orange"];
//可変オブジェクト
NSMutableArray *mutableArray = [array mutableCopy];
//要素の追加
[mutableArray addObject:@"Cherry"];

NSMutableDictionary

1
2
3
4
5
6
//不変オブジェクト
NSDictionary *dict = @{@"Key1" : @"Value1", @"Key2" : @"Value2", @"Key3" : @"Value3"};
//可変オブジェクト
NSMutableDictionary *mutableDict = [dict mutableCopy];
//要素の追加
[mutableDict setObject:@"Value4" forKey:@"Key4"];

NSMutableSet

1
2
3
4
//可変オブジェクト
NSMutableSet *mutableSet = [NSMutableSet setWithObjects:@"Apple", @"Banana", @"Orange", nil];
//要素の追加
[mutableSet addObject:@"Cherry"];

お薦めの参考書

絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第4版
Swiftについて知りたい開発者の方のみならず、プログラミング未経験者の方にも参考になる内容になっています。Swiftの基礎を一から丁寧に解説されており、この書籍があればネットで調べる手間をかなり省くことができると思います。

   このエントリーをはてなブックマークに追加

About

Masaki Hirokawa (@dolice_apps)

デザインエンジニア 廣川政樹の開発ブログ。Objective-Cや Javaなど iPhone/Androidアプリ開発に関する技術情報を掲載しています。

iPhone apps

  • リラックス・ヒーリング(無料)
  • 望みが叶う!引き寄せの法則アプリ(無料)
  • ミステリー - 怖い話や不思議な体験、都市伝説まとめ
  • 浮世絵壁紙 - 美しい日本画ギャラリー(無料)
  • 綺麗な壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)
  • クールな壁紙HD iPhone 7/7 Plus/SE & iPod対応(無料)

Android apps

  • 浮世絵壁紙 - 美しい日本画ギャラリー
  • 綺麗な高画質壁紙

Objective-C Classes

Tag Cloud

ActionScript(9) ActionScript3(7) Ad(4) Adfurikun(2) AdMob(9) Android(10) Animation(17) AppDelegate(3) ARC(1) ArrayList(1) AVAudioPlayer(4) AVAudioSession(1) AVFoundation(3) Banner(2) Bitmap(1) Camera(4) CGAffineTransform(4) CGBlendMode(2) CGContextRef(1) CGImageRef(1) Classes(44) CLLocationManager(1) ConnectivityManager(1) ContentResolver(1) CoreLocation(2) Delegate(3) Device(7) Display(1) DisplayMetrics(1) Download(101) Facebook(6) Foundation(72) Framework(2) Google Analytics(1) Handler(1) iAd(6) ImageView(1) In-AppPurchase(1) iOS(12) iOS 7(15) iOS 7.1(3) iOS 8(1) iPad(7) iPhone(21) iPhone 6(4) Java(7) JavaScript(2) LINE(4) Localize(1) Magazine(1) MediaStore(1) MFComposeViewController(1) Nend(1) NetworkInfo(1) NSArray(23) NSCalendar(3) NSData(2) NSDate(7) NSDateComponents(2) NSDateFormatter(2) NSDictionary(12) NSEnumerator(1) NSIndexSet(1) NSInteger(6) NSMutableArray(17) NSMutableDictionary(5) NSMutableOrderedSet(7) NSMutableString(4) NSMutableURLRequest(1) NSNotificationCenter(1) NSNumber(1) NSObject(1) NSOrderedSet(7) NSRange(2) NSSelectorFromString(1) NSSet(6) NSString(19) NSTimer(4) NSTimeZone(1) NSURL(7) NSURLConnection(1) NSURLRequest(2) NSUserDefaults(7) NSXMLParser(2) Objective-C(222) PHP(1) Products(14) QuartzCore(3) RSS(2) Runnable(1) Sample(51) Screensaver(9) SDK(2) ShareCompat(1) Social(10) StoreKit(1) Twitter(6) UIAccelerometer(3) UIActionSheet(1) UIActivityIndicator(1) UIActivityIndicatorView(3) UIActivityViewController(1) UIAlertView(5) UIApplication(7) UIButton(4) UIColor(3) UIDatePicker(5) UIDevice(6) UIDeviceOrientation(1) UIEvent(6) UIImage(15) UIImagePickerController(4) UIImageView(12) UIKit(58) UILabel(7) UINavigationBar(4) UINavigationItem(1) UIPasteboard(4) UIScreen(1) UIScrollBar(1) UIScrollView(1) UISlider(3) UIStoryboardSegue(3) UISwitch(1) UITabBar(3) UITableView(4) UITextField(2) UIView(11) UIViewAnimationTransition(1) UIViewController(4) UIWebView(5) WindowManager(1) Xcode(48) Xcode 5(8) Xcode 5.1(2)