Objective-C

かっこいいUI

GitHub - mpospese/MPFoldTransition: Easily add custom folding and page-flipping transitions to UIViews and UIViewControllers GitHub - applidium/ADLivelyTableView: Lively UITableView GitHub - levey/AwesomeMenu: Path 2.0 menu using CoreAnima…

UITableViewの一番上に検索バーを出してはじめは隠しておく方法

参考 http://rakuishi.com/iossdk/3030/ 2009-03-08 iphone - Adding UISearchBar as tableHeaderView in xib not works - Stack Overflow user interface - iPhone: Hide UITableView search bar by default - Stack Overflow なんだこの魔法は [self.table…

カスタムセルの作り方

カスタムセル.h, カスタムセル.m, カスタムセル.xibを作成 カスタムセル.xibにセルをドラッグアンドドロップで置く ドラッグアンドドロップで置いたセルのクラスを右のペインでカスタムセル.hの名前にする カスタムセル.mにセルに配置する部品のIBOutletを書…

objective-c ジェスチャー

参考 UISwipeGestureRecognizer でスワイプでシュッと出して閉じるメニューのコードを公開しました – Zero4Racer PRO Developer's Blog http://msc-jp.biz/material_html/terms_PAN.html iPhoneで動くアプリを作ろう タッチした位置が指定された範囲内かどう…

UIScrollViewをInterFace Builderで作るとき

setContentSizeに中身の大きさを教えてあげよう インスタンスで持って、viewDidLoadで以下みたいに書く。 - (void)viewDidLoad { [super viewDidLoad]; [self.scrollView setContentSize:CGSizeMake(320, 718)]; // ここ重要 } 具体的な作業工程 ScrollView…

アイコンとか必要なもののサイズ

参考 iPhoneアプリのアイコンサイズ - Hidde’s Tips

これ覚えといたほうがよい

1行で書きたいとき dispatch_async(dispatch_get_main_queue(), ^{ [self.tableView reloadData]; }); dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),^{ });

UIImageViewの大きさをいい感じに調整したいとき

答え Aspect Fit すればよろしい。 ちなみに Size to Fit すると間延びする。

プロダクト情報の取得

プロダクト情報取得処理呼び出し SKProductsRequest *skrequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:プロダクトID群を含んだ配列]]; skrequest.delegate = self; [skrequest start]; デリゲートされるメソッド こ…

カスタムセルでリサイクルさせるとき

// セル生成 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { [[NSBundle mainBundle] loadNibNamed:@"StoreListAllCell" owner:self options:nil]; // self.bookCell が メモリ空間のセルを参…

TabBarがタップされたときに使われるデリゲート

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

NSDataを文字列に変える方法

NSString *str = [[NSString alloc] initWithData:nsData encoding:NSUTF8StringEncoding];

ファイルのダウンロード

参考 NSURLとNSURLConnection(4/6):初心者のためのObjective-Cプログラミング入門 - libro NSFileManagerとファイル操作(1/6):初心者のためのObjective-Cプログラミング入門 - libro NSFileManagerとファイル操作(3/6):初心者のためのObjective-Cプログラミ…

@property(nonatomic, retain)したときに .(ドット)による代入を使うかどうかについて

はじめに @property(nonatomic, retain) を使った場合、問答無用でretain(+1)されるのだ。 おぉ 僕らはどうしたらよいのだろう。 この問題に関して、場合わけを行い、どんなプログラムの書き方(作法)があるのかを考える。 前提条件 deallocでreleaseしてい…

@property(nonatomic, retain)をしたときのメモリ管理の動き

はじめに @property(nonatomic, retain) したときのメモリ管理の動きが気になりここに示す。 前提:@property(nonatomic, retain) のセッターの擬似ソース -(void) setName:(TYPE)obj{ if(name != obj ){ [name release]; name = [obj retain]; } } 参考 詳…

iPhoneのディレクトリ

はじめに Bundleの領域は書き込み負荷だから、DocumentDirectory使うといいよっていうお話 DocumentDirectoryのパスってどうやって取得するの? NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); …

プリプロセッサの文法 (マクロの文法)

## トークンの結合 #define HOGE(a) fo##a NSString *foo = @"Hello World"; NSLog(HOGE(o)); 結果: Hello World HOGE(o)のところがfooになるので、fooという変数をNSLogに与えたNSLog(foo);と書いたことと同じになり、 Hello Worldが出力される。 ... 可変…

NSBundle

これでパスを指定してファイルを読み込めたりするのだが、 パスを指定するんだからXcodeがファイルを認識してなくてもよいだろうと思ったら、 他のクラス同様、Xcodeから認識できないとnullになってしまってうまくいかない。 NSBundle *bundle = [NSBundle m…

カスタムセルの作り方

xibファイルを作る New File > User Interface > Empty で空のxibファイルを作る。 Table View Cellを配置 xibに Table View Cell をドラッグアンドドロップで配置 セルに要素を配置 セルにImage Viewなどをドラッグアンドドロップで配置 File's Ownerを変更…

tag付けしたUIImageViewにアクセスする方法

[self.view viewWithTag:5] こんな感じ。 親からアクセス。 とうかViewを内包しているviewからアクセス。 日本語でなんて表現したらよいんだろう。

Objective-Cのintを文字列にする方法

[NSString stringWithFormat:@"%d",i];これかなぁ 参考 int型→NSString型 - 3ヶ月でiPhoneアプリを1本作る日記 - iPhoneアプリ開発グループ

Objective-Cの文字列連結

NSStringのstringWithFormatを使う NSStringのstringByAppendingString があるように思える

文字列からNSURLを作成するメソッドをNSStringに追加

@implementation NSString(URL) -(NSURL *) toNSURL { return [NSURL URLWithString:self]; } @end からの NSURL *url = [@"http://www.glpgs.com/" toNSURL]; NSLog(@"%@", url);というお遊び。

UDIDとUUIDの違い

UDID 端末固定の値。 macアドレス的イメージ。 UUID 一意になる可能性がむちゃんこ高い値を返す関数的なのから得れる値

safariを起動させる方法

safariを起動させる NSURL *url = [NSURL URLWithString:@"http://www.yahoo.co.jp"]; [[UIApplication sharedApplication] openURL:url]; ミスった例 UIApplication *app = [[UIApplication alloc] init]; とすると落ちた。 sharedApplicationで取得するみ…

NSUserDefaults

やったこと NSUserDefaultsを使ってみる。 AppDelegateでデータ登録。 ViewControllerでNextViewControllerに画面遷移。 NextViewControllerでデータ表示して別のデータにすげ替える。 NextNextViewControllerですげ替えたデータを表示できることを確認。 Ap…

Objective-Cで文字列操作

前置き Objective-Cってなんか慣れないと使いにくいですよね。 データ構造作るのしかり、文字列操作しかり。 httpでGETでアクセスするときのクエリーを作るのとかってサクッとできないものだろうか。やってみよう。 ソース NSArray *data = [NSArray arrayWi…

Objective-Cのゲッター、セッター (@propery, @synthesize)

前置き どの言語でも、ゲッターとセッターを書くのって、 かったるいですよね。そんなに情報隠蔽したいですかね。 ゲッター、セッターだけで何行書くんすかね。そんな世界でいいんですかね。 ということで、@propertyと@synthesizeの出番です。 前提知識を補…

Objective-C 自前でデリゲートを作る

自前で作ったクラスでデリゲートさせる 既存のクラスにデリゲートを呼んでもらったことあるけど、 自分でも呼んでみたーい。 やってみよう 参考:protocolと関連させたクラスの定義方法 - すぎゃーんメモ 5回メソッドが呼ばれるとコールバックしてあげるよ d…

Objective-Cの言語仕様(プロトコル編)

プロトコル Javaでいうinterfaceのこと。 メソッドの宣言を定義した集合だけの存在。 一応、静的型付けっぽい言語なので、「プロトコル、要るよねぇ〜」ってことなんでしょうか。 どっちかというと最後に記述するデリゲートの実装漏れを防ぐ役割の方が使用頻…