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
さて、NSStringをプロパティとして保持すること、たくさんありますよね。Googleのコーディング規約にもcopyにするよう書いてあります。 自分もそうしていたのですが、なぜそうしなければいけないのかというところまで考えないエンジニア失格状態だったのでちゃんと考えてみました。 さて、そもそもcopyメソッドとは何なのか? copyメソッド copyメソッドはNSObjectで定義されているのですが、copyメソッドを呼ぶとcopyWithZone:メソッドが内部的に呼ばれるようになっています。 APIリファレンスを見るとしっかりと書かれています。 Return Value The object returned by the NSCopying protocol method copyWithZone:,. copyWithZone:メソッドはNSCopyingプロトコルのメソッドです
Objective-Cで乱数を発生させたい時があります。その方法の比較。 rand()を使う 一番単純な方法としてはrand()を使います。rand()で乱数を発生させ、MAX_NUMのmodをとることでMAX_NUM未満の乱数を取得するわけです。 rand() % MAX_NUM; 例)rand() % 3 + 1 →1から3までの乱数を取得 ただし、この方法で実装すると実行するたびに毎回同じ乱数が発生します。そのため、乱数の初期値を修正する下記の方法をとることが多いです。 srand(time(NULL));//現在の秒数を元に初期値を修正 rand() % MAX_NUM arc4random()を使う Objective-Cでは便利な関数としてarc4random()があります。これを使うと乱数の初期化が要りません。 ((int) arc4random()) % MAX_NUM;
NSPredicateで使用できる全構文の解説です。 確認に使用したサンプルコードはこちらです。 NSPredicate Programming Guide - Predicate Format String Syntaxに記載しているのは全て取り上げていますが、SUBQUERYがNSExpressionに書いてあったりしたからまだ他にもあるのかもしれません。 あと@を指定して使用する関数のドキュメントが見つからなかった・・・ドキュメントが乱雑し整理されていない感じがしました。 関連キーワード: BNF, NSExpression 注意: SQLと同じ用語には注意が必要です。例えばANYはSQLのANYとは異なります。 リテラル %@ 文字列として扱われる(ダブルクォーテーションで囲われる) NSString *attributeValue = @"Anne"; NSPredicate *
When learning a new skill, like a programming language, we often just mash together whatever works in order to get it running. Later, we’ll return to these habits and re-evaluate, adopting best practices from the community and making better, more well-structured code. Lately, the Objective-C language has received a plethora of new features, but the community’s best practices hasn’t consistently st
RubyMotion Advent Calendar 2013 に何か書こう、ということでエントリ。 ご存知のように iPhone アプリの HBFav は RubyMotion で作っています。Objective-C ではなく。以前は Titanium Mobile で作っていましたが、去年にバージョン2として作り直すにあたって RubyMotion に移行しました。 RubyMotion に関しては以前、以下のエントリで概要を説明しています。 RubyMotion - naoyaのはてなダイアリー それから、今年 5月に開催した RubyMotion カンファレンスのスライドなどもあります。 実践RubyMotion - Speaker Deck RubyMotion が発表されたのは 2012 年の5月 とかで、それからずっと使い続けているので1年半近くが経ったことになります。App
iOS Advent Calender 2013 iOS second stage一日目担当の@keroxpです。普段は大学の研究室でインターフェースの研究をしていたり、仕事先の会社でiOSアプリの開発を行っていたりします。 さて、今回私が取り上げるテーマは「Xcodeと自動化」です。予告のタイトルでは「XcodeとContinuous Integration」だったのですが、CIを含めた自動化という題材でお送りしたいと思います。 自動化の意義 iOSに限らず、ソフトウェア開発の日常には様々なイライラが存在します。一つ一つは小さく、手間も少ないように思える事柄でも、手動でやらなくてはいけないことがひとつふたつ...と増えていったり、開発期間が長引くにつれて毎日毎日一定時間同じ作業を手動で行わなくてはならなくなります。 Don't Repeat Yourself!! そこでこの記事ではXco
Cocoa iOS デザインパターン どうも今のインターネット※の上ではMacよりも、iOSのコードやフレームワークを前提にした話が多いせいか、“Cocoa” という言葉を見なくなってきたように見えるのは、iOS前からCocoaを書いてきた人間にとっては少し悲しいことである。 そんなことはどうでも良くて、最近他人の書いたiOSのコードをよく見るのだが、その書き方、クラスの切り方、命名規則、カテゴリの使い方、継承の使い方、デリゲートなど各種パターンの使い方などなどその差は千差万別である。最初にCocoaを使ったという人は希少で、その大半は以前にC#, Java, Ruby, Python, PHPやそれらでよく使われているフレームワークを使っているがゆえ、CocoaらしいCocoaを書いている、書けている、または意識している人は少ないかもしれない。 Cocoa的な書き方は何で正解であるかとい
Issue #1 Lighter View Controllers, June 2013 By Chris Eidhof view controllerはiOSプロジェクトの中で一番大きいファイルになりがちで、必要以上に多くのコードを含んでいることが多い。ほぼ決まってView Controllerはコードの中で最も再利用性の低い部分だ。View Controllerをスリムにし、再利用可能にして、より適切な場所にコードを移すテクニックを見ていこう。 この記事のサンプルプロジェクトがGitHubにあるので参照されたい。 データソースとその他のプロトコルを外に出す View Controllerスリム化の最も強力なテクニックのひとつが、UITableViewDataSourceの部分を独立したクラスに移すことだ。これを2回以上やってみるとパターンが見えてきて、このための再利用可能なクラスを作る
あるメソッドの返り値の型が事前に分かっている型よりも“広い”ために、わざわざキャストをしなければならないことがある。 たとえば、-[NSDocumentController sharedDocumentController] メソッドは、通常 NSDocumentController 型のオブジェクトを返すにもかかわらず、返り値の型が id になっている。また、 NSWindowController の自前のサブクラスにおいて、 NSWindow のサブクラスを扱うことが分かっているのに、 -window メソッドの返り値の型が NSWindow のままになっているということもあるだろう。これらのメソッドの返り値を扱うにはダウンキャストが必要になり、煩わしい: [(NSDocumentController *)[NSDocumentController sharedDocumentCont
追加がありましたら「編集リクエスト」をお願いします ユーザーにレビューをうながす機能 Appirater (0.0.1, 0.0.2) A utility that reminds your iPhone app's users to review the app. Homepage: http://arashpayan.com/blog/2009/09/07/presenting-appirater/ Source: https://github.com/mk/appirater.git テーブルをページのようにめくれる ARTableViewPager (1.0.0) The ARTableViewPager is an iOS component for horizontal table view scrolling/paging. Homepage: https://github.
@interface LegacyClass : NSObject @property(nonatomic, readonly) NSArray* bugs __deprecated_msg("いつまで経っても変更作業が終わりません"); - (void)attendDeathMarch __deprecated_msg("もうウンザリです。何も改善できません"); @end Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
iOS7にどんな新機能があるのかも把握しきれないままベータ期間が終わってしまい、せっかくのメジャーバージョンアップ祭に乗り遅れた感があったので、先週末に開催された『もくもく開発会@鎌倉 #2 by Qiita』にて、 iOS 7 で新たに加えられたAPI の使い方等を勉強しつつ、簡単なサンプルを集めたアプリをつくりました。 ソースコードは GitHub に置いてあります。 https://github.com/shu223/iOS7-Sampler 今のところ21個のサンプルが入っています。何か調べた折に随時追加していきます。 以下サンプルのリストです。 Dynamic Behaviors iOS7 では UIView サブクラスに簡単に物理演算を適用することができるようになりました。 本サンプルでは、UIDynamicAnimator, UIGravityBehavior, UIColl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く