You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 本稿は Juri Pakaste 氏による Cocoa review checklist (commit fff5703)の翻訳です。他人の Objective-C のコードをレビューするとき注意する点、また普段のコーディングで心がけるべき点についてまとめられています。 なお、原文のタイトルは Cocoa review checklist となっていますが、内容が Cocoa に限らない範囲のトピックをカバーしているため、本稿のタイトルは「Objective-C の〜」としました。 誤訳の指摘や例の補足を歓迎します。 コードレ
# import "Test.h" @interface Test (Private) - (void)hoge; @end @implementation Test { NSString *str; int index; } - (void)hoge { NSString *a = @"a"; NSString *bb = @"bb"; NSString *ccc = @"ccc"; NSArray *array = @[a, bb, ccc]; int i = 1; i += 1; switch (i) { case 1: break; case 2: { break; } default: break; } } @end ##### Uncrustify config ### Preprocessor ## http://qiita.com/items/dd7c5ffdff27451
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。 こんにちは!アキオ(@akio0911)です。 以前にレベル・目的別!iPhoneアプリ開発おすすめ書籍15冊(2012年8月版)という記事を書きましたが、それ以降、役に立つ本・勉強になる本が何冊か出ましたので、iPhoneアプリ開発おすすめ本リストを更新してお届けしたいと思います! 追記 ↓ 2015年11月版を公開しました! ⇒ iPhoneアプリ開発にオススメの本7選(初心者向け含む)2015年11月版 iPhoneアプリ開発にオススメの本7選(初心者向け含む)2015年11月版 1. iPhoneアプリ開発が初めてな初心者の方に。画面部品のリファレンスとしても
iOSアプリを開発していて、例外が発生してアプリがクラッシュしてしまうことがしばしばあります。 Xcodeでは、クラッシュ時に得られる情報が少ないので、原因究明に時間がかかってしまいます。 そんなときは、「NSSetUncaughtExceptionHandler」を使用すると便利です。 まず、試しに、よくある例外をわざと発生させてみます。 - (void)viewDidLoad { [super viewDidLoad]; // ここで、わざと例外を発生させてみます。 [[NSArray array] objectAtIndex:0]; } 実行すると以下のようになります。 「UIApplicationMain」で止まってしまって、状況がよくわかりません。 「NSRangeException」が発生したことくらいはわかりますが、もう少し情報が欲しいところです。 そこで、「NSSetUnc
都会から生徒を受け入れる「島留学」を始めた。この春入学の「留学生」は31人。8月の島での見学会には全国から親子140人が参加した。 「島の最高学府を守れ」。島前の3町村長や住民らが08年に立ち上がり、高校の魅力化構想をつくった。通いたい高校にすれば生徒は増えるはず。「ピンチはチャンスだ」と考えた。いくつもの試みが「逆転の発想」から生まれた。 「小さいことはよいことだ」と10人前後の少人数習熟度別授業を始めた。「田舎は都会にはない自然や人のつながりがある」と地域に根ざしたカリキュラムをつくった。生徒は船のダイヤ改定案から、島の太陽光発電まで考える。「仕事がないから島に帰れない」ではなく、「仕事をつくりに帰りたい」人を育てようと、課題を解決する力をつける教育を目指した。 島にはコンビニもゲームセンターもない。「だからこそ工夫する力や粘り強さが磨かれる」と都会から生徒を受け入れる「島留学」を始め
イマドキの流行に敏感なキミだったらもう知ってるかもだけど、今日はそういうのに鈍感なオジサンたちのために、今風の Objective-C について書いちゃうよ。もちろん互換性的な感じで、すぐに変えられないかもってコもいると思うけど、知っててもソンじゃないから、いま覚えとこう!それとこういうのって、けっこー変わっていくものだから、半年後とかにはもう流行後れになるから注意してね! インスタンス変数 Objective-C のインスタンス変数と言えば、ヘッダの @interface に書くというのがこれまでのルールでした。典型的な例として、以下のように書いていました。 @interface MyObject : NSObject { NSString *aString; } ... @end 今風には、インスタンス変数の宣言は実装部の @implementation に書きます。 @impleme
iOS 開発で、EXC_BAD_ACCESS とさよならするための6つのルール | Zero4Racer PRO Developer’s Blogの記事を読んでいただき、ありがとうございます。”アキラ”さんから、 オブジェクトは必ずプロパティにする、というのは、利便性を考えれば理解はできますが、 それはクラス設計者が楽をするためであって、カプセル化を無意味にする行為なので、それほどいい選択とは言えないと思いますねぇ。 という指摘を頂きました。これは、プログラムを正しくカプセル化する上で重要です。私もこれは非常に重視していますが、Objective-Cには、プロパティに、プライベート、パブリックの指定が出来ないので、一見、プライベートのプロパティが指摘出来ないように感じます。しかしちょっとの工夫で、実現することが出来ます。 コードで書くと、以下のようになります。 [sourcecode la
お題: http://unknownplace.org/memo/2011/12/05/1/ リンク先の実装だと引数の値が取得出来ないので、以下の制約付きで引数が取れるようにしてみた。 戻り値は常にid型 引数は全てid型 引数にnilを指定されたときはNSNullに変換 #import <Foundation/Foundation.h> @interface Foo : NSObject - (id)call:(NSString *)selectorString withArguments:(NSArray *)arguments; @end @implementation Foo - (id)call:(NSString *)selectorString withArguments:(NSArray *)arguments { NSLog(@"call:'%@' withArgumen
ちょっと3Dグラフィックスやってみようかと思って、もしかしたら座標変換のライブラリはないかとドキュメントを見ていたら、Core Animationの関数を使ってアフィン変換・透視変換とかできる上に、そのまま描画もできるらしいということが分かった。 Core Animationプログラミングガイド: レイヤジオメトリと変換 Core Animationプログラミングガイド: Core Animationレイヤの配置 やってみた結論としては、がっつり3DやるならやっぱりOpenGLとか使った方が良いと思う。けど、簡単な図形や画像をちょっと俯瞰っぽく見せたい、ぐらいなら使えるかも。 ちなみにOSバージョンはSnow Leopard(10.6.6)です。 追記: これで立体迷路アプリ作ってみた 準備1. CocoaのクラスにCALayerを貼付ける とりあえず適当なサイズのウィンドウを表示させてC
同一wifi内のiPhone同士で通信しあうにはBonjourを使うと簡単にできるらしい。簡単にっていうのはアドレスの割当やらホストの解決、公開サービスの検索なんかを自動的にやってくれるみたいだけど、それ以外でも結構大変だったのでその記録。 主な手順としては、 サーバ側がNSNetServiceを使ってサービスを起動 クライアント側はNSNetServiceBrowserを使ってサーバとサービスを検索 見つかればNSInputStreamやNSOutputStreamを使ってデータをやり取り という感じで結構簡潔。 まずはプロジェクトの準備。新規プロジェクトをTab Bar Appricationから作成します。左のタブをServer(ServerViewController)、右のタブをClient(ClientViewController)として進めます。 ServerViewCont
どうも、「iOS Advent Calendar 2011」5日目担当のfaultierです。つい最近使ったのでNSURLProtocolネタで。 NSURLProtocolって何? Foundationフレームワークで最初から扱えるプロトコルはhttp、https、ftp、fileの4つ。これ以外のプロトコルでの通信をNSURLConnectionやNSURLDownloadなどで扱う場合や、特定のリクエストに限って特別な処理をしたい場合などに、NSURLProtocolを継承して登録することで使えるようになる。ちなみに、他のアプリからopenURLしたときにアプリを起動させるカスタムURLスキームとはまた別なので注意。こちらはアプリ内でURL Loading Systemを使うときにだけ影響するもの。 使い方 最低限必要なのは、+canInitWithRequest:、+canonic
例えば UIKeyboardWillChangeFrameNotification の通知を受け取りたい。普通に NSNotificationCenter へ登録すればいいのだが、iOS 4 でこれを実行するとクラッシュする。 この通知は iOS5 から導入された新しいもので iOS4 に無いのが原因。この通知名は NSString* const で定義されている。 // UIWindow.h UIKIT_EXTERN NSString *const UIKeyboardWillChangeFrameNotification __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0); そこでこの定数の有無をチェックしたい。調べると Appleがドキュメントを出していた。 SDK Compatibility Guide: Using SDK-Based
iOS Advent Calendar 2011 3日目です。 今日は iOS5 から新しく仲間になった中でも影が薄い子 NSOrderedSet を紹介します。 そもそも NSArray は使うけど NSSet は馴染みが薄いという人も多いと思いますので、まずは NSSet の復習から入ります。 NSSetと集合 NSSet は NSArray や NSDictionary と同じコレクションクラスで集合を扱うためのクラスです。 UNION(和集合), INTERSECT(積集合), EXCEPT(差集合) などの集合計算が得意で、ある集合に任意の要素がマッチするかどうかという判定が多い場面では有効なクラスです。 和集合:いくつかの集合に含まれている要素を全て集める NSArray *worldA = [NSArray arrayWithObjects:@"Kyoma", @"Kuri
[iOS5] ARC (Automatic Reference Counting) : Overview 2011/11/16/|iOS|メモリ管理, iOS5, ARC iOS 5では数々の機能が追加されましたが、その中でも開発者の私たちにとって嬉しかったのはARC(Automatic Reference Counting)ではないでしょうか。そこで、ARCの概要から注意点まで、基本的なところを何回かに分けてまとめていきたいと思います。 ARCとは? ARC (Automatic Reference Counting) とは、その名の通り、自動リファレンスカウンタ。リファレンスカウンタ方式のメモリ管理を自動で(正確にはコンパイラが)行ってくれるというものです。 ご存知リファレンスカウンタ方式のメモリ管理では、retain, releaseなどのメソッドを用いて生成したオブジェクトの保持状
C言語も知らなかったけど、iPhoneアプリ開発が出来るようになるまでにお世話になった11冊! 2011年8月24日 in iPhone, Objective-c 私がiPhoneアプリを作りはじめたのは、2009年の11月でした。C言語すらまともに使ったことがなかったわけですが、当時はまだインターネットでも開発についての情報が少なく、ほとんどは海外サイトをみて翻訳して調べるしか手がありませんでした。 ですので、最初はiPhoneアプリの開発本を読みあさっていたわけですが、様々な本を読むことで基本的な知識を身につけることが出来ました。今回はiPhoneアプリ開発本をご紹介したいと思います。 [基礎編] iPhoneアプリ開発の基礎 やさしいC プログラム経験が全くない方におすすめです。C言語の本ですが、オブジェクトやインスタンス、クラスについてなどなど、内容が読みやすく、基礎からしっかり
iPhone開発で、メモリ管理の基礎を社員に伝えることが増えてきたので、エントリとして書こう。 Objective-C基礎 メモリ管理の前にObjCの基礎として、メソッド呼び出しの話。 クラスのインスタンスaがmethodAをコールするときは、 [a methodA] と書く。このとき、aがnilだったときは、エラーではなく、コールされない。methodAに戻り値があるときは、それは、0やnilやNOが返る。ObjCでは、 void dealloc { if(a!=nil){ [a release]; } [super dealloc]; } は、気持ち悪いので、nilチェックはやめましょう。 なお、ObjCでは、動的にメソッドを差し替えることができ、コールの度にメソッドが存在しているかも確認しています。そのため、LL言語(ライトウェイト言語、スクリプト)のように柔軟な記述が可能です。そし
MacOSXプログラミング。毎日更新。 話題: Cocoa, Objective-C, Snow Leopard 「ホットキー」とは、アプリケーションが非アクティブでも処理できるキー(イベント)のこと。今作っている画面キャプチャキーで使いたいので調べてみた。 2つほど参考になるページが見つかった。Carbonイベントを使うようだ。 ホットキーを登録する(HDMT) Program Global Hotkeys in Cocoa Easily (Dustin Bachrach Blog) HDMT木下さんのページでは Cocoaで扱いやすいようにアレンジしてある。 情報が揃ったのでこれらを参考に自分で試してみた。 ソース:Shortcutkey.zip 実行すると右上のステータスバーに "SAMPLE MENU"が現れる。 この状態で Option + Command + スペースキー を押
Objective-Cと Lispを融合させたプログラミング言語「Nu」のバージョン 0.9.0が 7月 2日にリリースされた(GitHubのコミット)。 NuはObjective-Cで実装されたオブジェクト指向のインタプリタ言語で、Lisp由来の文法と Objective-Cのクラス機構を備えているのが特徴。Mac OS Xの Cocoa APIや各種ライブラリにアクセスでき、OS Xのネイティブな GUIアプリの開発が可能。 Nuの歴史はまだ浅く、知名度も低いものの、作者はブログにて「Nuはそのバージョン番号やWebサイトのアクティビティから想定されるよりもずっと安定しており、重要なアプリケーションのプログラミングにも安心して利用できる」との旨を述べている。 Nu言語の日本語の記事としてはCodeZineの「Nuで Mac GUIプログラミング Twitterクライアントを作ってみよう
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く