NSArrayクラスの基本

NSArrayクラスは、オブジェクトの集合を格納するクラスであり、順番のあるデータを格納するのに向いています。
格納したオブジェクトには0から番号が割り当てられて管理されます。(取り出す時にその番号を指定して取り出します)

NSArrayの中には、NSArray、NSDictionary、NSString等のオブジェクトを格納でき、データの構造を階層構造にすることもできます。

NSArrayは後から変更することはできません。順番入れ替えや、要素の追加など、後からの変更を可能にしたい場合は、NSMutableArrayクラスを使用します。

・NSArrayを作成する。

(例1) NSArray *arr = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
(例2) NSArray *arr = [[NSArray alloc] initWithObjects:@”one”, @”two”, @”three”, nil];

・主なメソッド

-(id)objectAtIndex:(NSUInteger)index
(例)
[arr objectAtIndex:2];
指定した位置の要素を返す
-(NSUInteger)count
(例)
int arrNum = [arr count];
要素数を返す
-(id)lastObject
(例)
id lastObj = [arr lastObject];
一番最後の要素を返す


NSStringクラスの基本

NSStringクラスはObjective-Cで文字列を格納するクラスです。

Objective-Cの場合、文字列は
@”HelloWorld!” という風に@”と”で挟んで扱います。

NSStringは長さが固定のクラスなので、
長さが可変の文字列を扱いたい場合は、NSMutalbeStringクラスを使用します。

・NSStringを作成する。

(例1) NSString *string = @”HelloWorld!”;
(例2) NSString *string = [NSString stringWithString:@"HelloWorld!"];

・主なメソッド

-(NSString*)stringByAppendingString:(NSString*)string
(例)
NSString *str1 = @”Hello”;
NSString *str2 = @”World!”;
NSString *str3 = [str1 stringByAppendingString:str2];
str3の中身は「HelloWorld!」になります。
文字列を結合する
-(unsigned int)length
(例)
NSString *str = @”Hello”;
int strLength = [str length];
strLengthの中身は5になります。
文字列の長さを取得する
-(BOOL)isEqualToString:(NSString*)string
(例)
NSString *str1 = @”Hello”;
NSString *str2 = @”World!”;
BOOL isEq = [str1 isEqualToString:str2];
isEqの中身はNOになります
同じ文字列であるか比較する
-(int)intValue
(例)
int intVal = [@"101" intValue];
 int型にキャストする
-(float)floatValue
(例)
float floatVal = [@"42.195" floatValue];
float型にキャストする
-(BOOL)boolValue
(例)
NSString *str = @”YES”;
BOOL isEdit = [str boolValue];
BOOL型にキャストする


iOS向けのオープンソースのUIが探せる「Cocoa Controls」

iOS向けのオープンソースのUIが探せる「Cocoa Controls」というサイトが便利なので紹介します。

カレンダー、facebook風のメニュー、パスコード画面
などのUIはUIKitに用意されておらず、
自分でコードを書いてUIを作ることになります。
しかし一から作るのは、なかなか大変だと思います。

そんな時はまずCocoa Controlsで探してみましょう。
数百種類ものUIが紹介されています。

cocoa controls

それぞれライセンスの種類が違うので
ライセンスをよく確認してから使わせてもらいましょう。


UIViewの角を丸くする方法

UIViewの角を丸くする方法について書きます。

まずは、QuartzCore Frameworkを追加します。
XCodeのプロジェクト -> TARGETS -> Build Phasesで
Link Binary with Librariesを展開して
+ボタンを押して「QuartzCore.Framework」を検索して追加します。


次に、この方法を使うクラスの.hファイルで
QuartzCore/QuartzCore.hをインポートします


これで角を丸くすることができるようになりました。

角を丸くしたいUIViewが「view」という名前の場合の例は以下のようになります。


iOS5以降で簡単に使える4種類のUIAlertView

iOS5.0から「alertViewStyle」というプロパティが追加されたので、
4種類のアラートを簡単に表示できるようになりました。



「setAlertViewStyle:」の引数に下記の4種類のどれかを指定します。
UIAlertViewStyleDefault
UIAlertViewStyleSecureTextInput
UIAlertViewStylePlainTextInput
UIAlertViewStyleLoginAndPasswordInput


Interface Builder(Storyboard)を使わずにToolBarを利用する方法

Interface Builder(Storyboard)を使わずに、ToolBarを表示させてみます。
viewDidLoad部分に以下のコードを書きます。


Interface Builder(Storyboard)を使わずにTabBarを利用する方法

Interface Builder(Storyboard)を使わずに
TabBarを利用するにはAppDelegate.hとAppDelegate.mにコードを記述します。

▼AppDelegate.h



▼AppDelegate.m



9〜11行目の個別ページ生成部分と、15行目のTabBar生成部分を変更すれば、タブを減らしたり増やしたりすることができます。


UINavigationBarの背景に画像を指定する方法

UINavigationBarの背景に画像を指定する方法を紹介します。
アプリに個性を出したい場合なんかにためしてみるといいかもしれません。

UINavigationBarにUIImageViewをinsertSubviewして実現します



Interface Builder (Storyboard) を使わずにUIPickerViewを使う方法

Interface Builderを使わずに
UIPickerViewを使う方法を紹介します

▼MyPickerViewController.h
<UIPickerViewDelegate, UIPickerViewDataSource>を指定します。




▼MyPickerViewController.m
dataSourse/delegate、列数/行数を指定します。



Interface Builder (Storyboard) を使わずにUITableViewを使う方法

Interface Builderを使わずにUITableViewを使う方法を紹介します。
UIViewControllerを継承した「MyTableViewController」というViewControllerを作ってみます。

▼MyTableViewController.h
UITableViewを利用するための「プロトコル」を指定します




▼MyTableViewController.m
delegateとdataSourceの設定、行数/表示データの指定が必須です。