サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
qiita.com/Ushio@github
※この記事は間違った情報を記述しています NSStringにはisEqualToString:[isEqual:]で文字を比較することができます。 しかしながら、この比較というのはliteral Unicode-based comparison、バイト列の比較なのです。 つまり、文字列的には同じだが、バイト列としては違う場合、 isEqualToStringは違うものと判断してしまいます。 従ってこの挙動が望ましくない場合、compare:等のその他の比較メソッドの中から適切に選択する必要があります。 caseInsensitiveCompare:やlocalizedCompare:等々色々ありますね。 この辺はまたしっかりリサーチができたらいずれまとめたいです。 #import <Foundation/Foundation.h> int main(int argc, const char
カメラ系のプチトピックです。 AVFoundationをつかってカメラの機能を使う時に、本体の向きをカメラAPIに伝える必要がありました。この伝達をしないと、横向きで写真を撮った時におかしくなります。 例えば ↑ という被写体があったとして、iphoneのホームボタンを右にして写真を撮った場合、 カメラAPIは本体が横を向いているのがわからないため、撮った写真は、 → として出力しちゃうんですね。 でもユーザーはちゃんと ↑ というのを横幅多めで出力されるのを期待するわけです。 それが正常な挙動としてしまうのも一つですが、普通の挙動を目指すなら対応した方がいいと思います。 まずは本体の回転の通知を受けましょう 1行目が落とし穴で、きちんとこれを呼んでおかないと、向きを正しく返さないよ、 とリファレンスに書いてありました。 呼び出す順番には注意を払いたいところです。 http://de
なにか非同期のリクエストを送るメソッド呼び出しを行う場合、よくあるデザインとして、 完了をblocksで通知してくれるものがあります。 例えば、 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.co.jp"]]; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { }]; for(int i = 0 ; i < 10 ; ++i) { NSURLRequest *request = [NSURL
@interface DownloadUtility : NSObject + (void)downloadAndRetryWithURL:(NSURL *)url retryCount:(int)retryCount completion:(void(^)(NSURLResponse *response, NSData *data))completion failue:(void(^)())failure; @end @implementation DownloadUtility + (void)downloadAndRetryWithURL:(NSURL *)url retryCount:(int)retryCount completion:(void(^)(NSURLResponse *response, NSData *data))completion failue:(void(^
UIImageWriteToSavedPhotosAlbumではフォルダ(グループ?)の中に画像を入れることができません。 しかしアプリによっては任意のフォルダに画像を保存しているものがあります。 あれば便利程度の機能ではありますが、アプリとしての品質があがるので、必要であれば実装したいですね。 今回はそれをやります。 今回はgithubにコードを用意しました https://github.com/Ushio/PhotoLibraryUtility カテゴリとして用意しましたので ALAssetsLibrary+PhotoLibraryUtility.h ALAssetsLibrary+PhotoLibraryUtility.m をプロジェクトに追加すればすぐ使えるはずです。 挙動は、 ・指定した名前のフォルダが存在していなかったら新しく作り、そこに保存 ・存在していたらそこに追加 という
Xcode 4.6が出ましたね。iOS6.1と合わせてというかんじです。 というわけで新しくなった部分をまとめてみます。 この訳は、結構稚拙な英語力で淡々と訳したものです。過度な期待はしないでください。 個人的に重要だと思う所が太文字です。 リリースノートより iOS 6.1 サポート・iPad miniとRetinaのiPadディスプレイ(第4世代)のサポート Apple LLVMコンパイラとObjective-c言語のアップデート ・ARCとweak参照を使っている時の新しいコンパイラ警告 ・C++11 の「ユーザー定義リテラル(user defined literals)と 無制限Union(unrestricted unions)のサポート ・バラバラに配置されたスタックオブジェクトをマージすることで、 スタックメモリのアロケーションを減少させる、高度な最適化 ・The Typed
blocksには数多くの落とし穴があります。 しかしそれを乗り越えることができれば、非常にスマートにかける状況はそれなりに増えると思います。 ※注意:ここではARC環境での話です。一部MRCと状況が異なる場合があるかもしれません。 <blocksはObjective-cのオブジェクトをstrong参照でキャプチャする> ここでいうキャプチャとは、ポインタをコピーしている、ということです。 なんで?と思われる方も多いと思います。しかし理由ははっきりしていています。 例えば、dispatch_afterで処理を遅延することを考えてみましょう。 NSArray *sameArray = ...; int64_t delayInSeconds = 2.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSecon
CAAnimationのdelegateには落とし穴があった。 UIKitのdelegate系はすべて弱参照だと思っていたが、 CAAnimationのdelegateに限っては強参照のようだ。 https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CAAnimation_class/Introduction/Introduction.html Important: The delegate object is retained by the receiver. This is a rare exception to the memory management rules described in Advanced Memory Management Programming Guid
NSStringを行分割したい。割とある気がします。 手っ取り早く回答が欲しい方は一番下へどうぞ。 しかしこの改行コードはくせ者であり、なかなか面倒な面がある。 まず最初に考えるのは
このページを最初にブックマークしてみませんか?
『@Ushioのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く