何回やっても覚えられないならメモしておくしかないじゃない!
あなたも・・・私も・・・
よく使う、しかもよく忘れる、
すごく単純な命令をここにメモしていくことにしました。
Foundation関連
・大文字小文字を区別せずに文字列比較を行う
// 大文字小文字区別なしで、同じ文字列かどうかを調べる BOOL equals = NSOrderedSame == [@str1 caseInsensitiveCompare:str2];
・文字列のtrimming
// 前後の空白文字を除去(全角空白も除去!) s = [s stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; // 空白と改行も除去したい場合 s = [s stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
・NSData→NSString変換
HTTP通信のレスポンスボディがNSData型で取れるので、よく文字列に変換することがある。
NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; NSString* content = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
・NSTimeIntervalは秒を表すdouble型である
double型なので、通常の四則演算で計算可能だし、比較も可能。
// startTimeからの経過時間を計測する NSTimeInterval passed = [[NSDate date] timeIntervalSinceDate:startTime]; // 1秒以上経過しているかどうかを調べる if (1.0 <= passed) { // ... }
・NSArrayを変更可能配列に変換する
copyは常に変更不可の参照を返し、mutableCopyは常に変更可能な参照を返す。
NSMutableArray* marry = [array mutableCopy];
・配列の要素を範囲指定削除
// 配列の末尾len個の要素を削除
[array removeObjectsInRange:NSMakeRange(array.count - len, len)];
UI関連
・UIImageをコピーする
いわゆるディープコピーというやつ。
UIImage copy = [[[UIImage alloc] initWithCGImage:otherImage.CGImage] autorelease];
・Segueから次画面のViewControllerを取得する
destinationViewControllerというプロパティ名をよく忘れて、「あれなんだっけ・・・」ってなっちゃうのでメモ。
-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"segueName"]) { NSLog(@"%@", segue.destinationViewController); } }