タグ

Objective-Cに関するxhogeのブックマーク (29)

  • niw.at — +[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] が何をしているか調べてみた

    +[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] が何をしているか調べてみた TL; DR: +[NSURLConnection sendAsynchronousRequest:queue:completionHandler:] は dispatch_async で +[NSURLConnection sendSynchronousRequest:returningResponse:error:] を呼んでいる。 NSURLConnection を非同期に使いたいなんて要望はもうそれこそかなり昔からあって、数多の車輪の再発明とブログと FAQ が生まれたわけですが、一昨年の Grand Central Dispatch1、GCD の登場でついに抜的な解決が見えるかのように見えてわひょーいってなった割には

  • グローバル変数

    Mac OS X 向けアプリケーション開発を仕事としている永遠製作所が、日々の開発でつきあたった問題点や、ちょっとしたTipsをメモしていこうと言う、自分勝手な覚え書きブログ。 インターネットの掲示板で初心者からの質問として、二つの画面の間でデータの受け渡しをやりたいがその方法がわからないというのをよく見かける。あ、もちろんiOS SDKプログラミングの話ね。 別にアップルがそのためになにか特別なAPIを用意してくれているわけではないので普通にC言語のブログラミングでやっているようにプログラムを作ればいいだけの話。でもiOSプログラミングでは画面の表示のためにはこのコントローラを使いなさいとか、初期化時にはこのメソッドをオーバーライドしなさいとか、色々決め毎があるのできっとなにか決まりがあるんだろうと思ってしまい見つけられずに質問をするのだろう。 とは言え、こう書いた方がiOS的には判りや

  • Iosjp.com is for sale | HugeDomains

    Make 24 monthly payments Pay 0% interest Start using the domain today. See details

    Iosjp.com is for sale | HugeDomains
  • Objective-C 宣言プロパティで利用できるオプション (readonly、retain、nonatomic)など | thaty

    今日は、宣言プロパティで使用できる属性とその宣言の仕方を見ていきます。 プロパティの属性とは 例えば、前々回の投稿「宣言プロパティとは」で出てきた、starSignというプロパティを見てみると、これは外部から読み取り専用にしたいインスタンス変数のプロパティでした。 アクセサでこれを実現する場合は、セッタメソッドを書かず、ゲッタだけを書くことで実現できました。 これを宣言プロパティで実現しようとすると、普通に宣言したのでは、ゲッタもセッタも提供されてしまいます。 そこでこのような場合は「readonly」という属性オプション使ってやります。これを設定することで、ゲッタだけを提供するプロパティとして定義できます。 このように読み書きの方法や、値の設定の仕方をある程度カスタマイズできる用にいくつかのオプションが用意されています。 その一覧を以下の表にまとめました。 合計11のオプションが用意され

    Objective-C 宣言プロパティで利用できるオプション (readonly、retain、nonatomic)など | thaty
    xhoge
    xhoge 2016/04/10
    xcode
  • [XCODE] iPhoneアプリが予期せぬエラーで異常終了する際に、そのログを取得しておく方法 - YoheiM .NET

    こんにちは、@yoheiMuneです。 日は、Evernoteアプリなどにある機能で、アプリが異常終了した際のログを保存しておき、 次の起動時に異常終了したことを検知したり、そのログを取得する方法をブログに書きたいと思います。 iPhoneアプリで異常終了した際のログを取得するメリット iPhoneアプリの開発経験があれば、誰しも異常終了した際のデバッグに困ったことが多いのではないでしょうか? 特にリリース後にユーザーから指摘された異常終了を再現するとなると、ちょいと大変。 iPhone実機上で動いている場合にも、異常終了した場合の詳細なログを取得しておけるとデバッグがすごく楽になります。 今回はそのための方法を書きたいと思います。 異常終了時にエラーログを取得して保存しておく実装方法 具体的な実装方法は以下の通りになります。 AppDelegateにエラーキャッチの仕組みと、エラーをキ

    [XCODE] iPhoneアプリが予期せぬエラーで異常終了する際に、そのログを取得しておく方法 - YoheiM .NET
  • NSArrayについて

    NSArrayとは NSArrayはNSObjectを親オブジェクトとするオブジェクトの集合を格納するオブジェクトです。順番のあるデータの格納に向いています。 中に入れたオブジェクトはそれぞれ0から順番に番号が割り当てられて管理されます。番号の型はNSUIntegerです。 NSArrayの中にさらに別のNSArrayを入れたり、NSDictionaryを入れたりできます。 さらにそのNSArrayやNSDictionaryにNSArrayを格納して…ということで階層構造のデータを構築できます。 代表的なメソッド(目的別) オブジェクトを列挙してNSArrayを作りたい - initWithObjects: ファイルにNSArrayの内容を保存したい - writeToFile:atomically: ファイルの内容からNSArrayオブジェクトを作りたい - initWithConten

  • Xcode6からはProjectName-Prefix.pchは自動的に生成されませんが、それでもpchファイルを利用したい時の利用方法

    小ネタですが、Xcode6からはProjectName-Prefix.pchは自動的に生成されなくなりました。 対処方法がstackoverflowに有りましたので紹介させていただきます。 「Why isn’t ProjectName-Prefix.pch created automatically in Xcode 6?」 1. Add new PCH file to the project – New file > Other > PCH file 2. At the project ‘Build Settings’ option – set the value of ‘Prefix Header’ to your PCH file name, with the project name as prefix – i.e. for project named ‘TestProject’

  • iPhoneアプリのライフサイクル - Qiita

    修正(2014/12/30) shouldperformseguewithidentifier はDeprecatedらしいので、削除しました (shouldperformseguewithidentifierの中でSegueで遷移するかどうかを判定するのではなく、あらかじめ遷移してよいかどうかを判定した上で、prepareForSegueを実行せよということなんでしょうね) canPerformUnwindSegueAction を追加 画面間を移動した場合のApper系の実行順がおかしかったので訂正 その他、ちょこちょこと補記 目的 AppDelagate、ViewController、Segue、全部まとめたものがなさそうだったのでまとめてみました。 1:-[FirstViewController viewDidLoad] 1:-[FirstViewController viewWi

    iPhoneアプリのライフサイクル - Qiita
  • iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する - A Day In The Life

    iOS は タッチパネル式端末用に最適化された OS で ユーザが端末を操作しやすいように GUI の仕組みが提供されています。iOS アプリ開発では主に GUI を操作するプログラムを実装していきます。iOS の GUI プログラムはイベント駆動型と言われるプログラミング方式に則ってプログラムを実装していきます。 iOS に限らず Mac OS 用のアプリ開発でも同じようにイベント駆動型のプログラムを実装しますが、 iOS はタッチパネル式モバイル端末用の OS という性質上 Mac OS のイベント駆動プログラムと少し違うところがあります。 この記事では iOS のイベント駆動の仕組みを「ライフサイクルイベント」と「ユーザアクションイベント」にわけて説明します。iOS のイベント駆動がどういったものなのか理解してその仕組みの上で自由にプログラムできるようになることが目的です。 イベント

    iOS のイベント駆動をライフサイクルイベントとユーザアクションイベントにわけて理解する - A Day In The Life
  • Xcodeでデバッグマクロ | tkd55

    iOS開発時にデバッグログを NSLog(@"%s", __func__); とか NSLog(@"%s", __PRETTY_FUNCTION__); って書いていたけど、フォーマット指定子を忘れたり、リリース前に消したりするのが面倒だったので、 関数名(引数も)/行数/文字列を出力するデバッグマクロを書いてみたよ。 【使い方】 ①「アプリケーション名_Prefix.pch」に以下を追加(ヘッダに書くとimportするのが面倒なので.pchに書く) // デバッグログマクロ #ifdef DEBUG #define dbgLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define dbgLog(...) #endif ②ログ出力したい箇所に

    Xcodeでデバッグマクロ | tkd55
  • Objective-Cで非同期処理を同期処理にする方法。

    同期処理は簡単に非同期処理にできますが、非同期処理は簡単には同期処理にできません。 Objective-Cで、非同期処理を同期的に実行するにはどうしたら良いのかと調べたところ、ディスパッチセマフォを使うのが良いようでした。 セマフォとは信号装置とかいう意味らしいですが、「カウンタ」だと思って良いんじゃないかと思っています。 同期処理の例 まずは通常の同期処理から。 for (int i = 0; i < 5; i++) { sleep(1); NSLog(@"Process: %d", i); } これは、1秒ごとにカウントを表示する処理です。これは当然同期処理です。実行を始めると5秒間はこの先に処理が進めません。 同期処理を非同期処理にする 同期処理を非同期処理にするには、dispatch_asycを用いて、バックグラウンドのスレッドのキューに処理を追加すれば良いです。 dispatch

    Objective-Cで非同期処理を同期処理にする方法。
    xhoge
    xhoge 2016/03/24
    “では、非同期処理を同期処理にするために、セマフォを使っています。 セマフォは、同時に実行される並列処理の数を制限するために用います。dispatch_semaphore_createの引数で指定する値は並列して実行する処理の最大数で
  • モーダルダイアログ(パネル)ライブラリ - UAModalPanel

    ボタンを押した時やスワイプ、スライドした時に使える音源集。 Octave: A free library of UI sounds. AIFF形式/16 bit/44.1khz なファイルが48個提供されている。 カテゴリは3つ。 ・beeps  ブザー...

    モーダルダイアログ(パネル)ライブラリ - UAModalPanel
  • [XCODE] iOSから非同期/同期にHTTPリクエストを送信する方法(Part2) - YoheiM .NET

    こんにちは、@yoheiMuneです。 以前ブログに書いた「iPhoneアプリからHTTPリクエストを送信して、データを受信する方法」で紹介したリクエスト送信方法より便利な送信方法があったので、ブログに書きたいと思います。 iOSから非同期にHTTPリクエストを送信する iOSからHTTPリクエストを送信する方法はいくつかありますが、以前の記事では、 Delegateを実装する必要があっていくかのメソッドを書かなきゃいけなかったので、面倒な感じでした。 今回紹介する方法は、実行結果をブロックの引数で受け取ることができ、いい感じに少ないコード量で実装できます。 以下が具体的な実装例です。 // 送信するリクエストを生成する。 NSURL *url = [NSURL URLWithString:@"http://www.yoheim.net/"]; NSURLRequest *request

    [XCODE] iOSから非同期/同期にHTTPリクエストを送信する方法(Part2) - YoheiM .NET
  • Xcode の便利プラグインまとめ - Qiita

    Xcode の便利プラグインまとめ はじめに Xcode 8 からのいわゆる Xcode Source Editor Extension ではなく、あくまで非公式のプラグインを掲載します。 インストール先は ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/ Alcatraz などのパッケージマネージャを使うと管理が楽 Xcode の更新でプラグインが使えなくなる事もあるので注意 "DVTPlugInCompatibilityUUID" を追記する事で対応出来る場合もある(後述) 管理 Alcatraz Xcode プラグインや Color Scheme などを管理するパッケージマネージャ。これを入れておけばこの記事を見なくてもだいたいのプラグインは参照できます。 メニューバー > Window > Package

    Xcode の便利プラグインまとめ - Qiita
  • [iOSアプリ開発] タッチでお絵かきしてみる | DevelopersIO

    今回はiOSアプリ開発で、タッチでお絵かきができるサンプルを作ってみようと思います。 タッチしたところを線にして描画する処理を実装しますが、サンプルとはいえ、それだけだとあまりに使い勝手が悪いので、 UNDO(元に戻す)とREDO(やり直す)と、全部削除するクリア機能も実装してみます。 環境 今回の主な環境と設定は以下の通りです。 Xcode 4.6.1 iOS SDK 6.1 iPod touch 5th ストーリボード使用 ARC使用 実装 まず、画面を作ります。 画面全体に描画用のキャンバスとして UIImageView を広げ、 画面の下の方に各種ボタンを配置します。 次に、ヘッダーファイルを作成します。 #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak, non

  • iOS9 SDKでDeprecatedになるもの。 - なるようになるかも

    UPDATE(2015/09/26):この文書はDeprecatedという単語の使い方が雑なのでDeprecatedになりました。 こちらの記事を参照した方が得るものがあるかと思います。 qiita.com 新しいAPIの誕生より、APIの滅びの方が好きです。なぜならそこには失敗があり、学びがあるからです。 developer.apple.com …とか適当に言ってみましたが、iOS9のAPI Diffは、Swift2.0絡みの変更点(主にNSErrorに対応するenumの追加と、後述するビットマスクの扱いの変更)だらけで、当に変わった場所がどこなのか分かりにくいので、ちゃんと調べてないです。 AudioUnitOSXに追いついたCoreAudio周りが熱いような…。CFunctionPointerの魔窟だったCoreMIDIなんかは刷新と言っていいレベルで変わっていますね。でも今のA

    iOS9 SDKでDeprecatedになるもの。 - なるようになるかも
  • スパゲッティから脱出!iOS開発における遷移の問題をすっきり解決する便利ルーティングライブラリをご紹介 - Qiita

    スパゲッティから脱出!iOS開発における遷移の問題をすっきり解決する便利ルーティングライブラリをご紹介Objective-CiPhoneXcodeiOSStoryboard by @mixiappwchr みなさん、最近はstoryboardを使ってバリバリ開発していることと思いますが、調子に乗っているとこのようになったりしませんでしょうか? 複雑過ぎでどうなっているかわかりません。。。! storyboardのsegueは直感的でわかりやすいのですが、そのままsegueでの遷移ばかり使っているすぐにスパゲッティなviewになります。 適切に複数のstoryboardに分けたり、xibとの使い分けを行えば良いのですが、めんどくさかったりします。 そもそもiOSの開発において画面を遷移するパターンは様々です。 navigationControlerへのpush presentViewCont

    スパゲッティから脱出!iOS開発における遷移の問題をすっきり解決する便利ルーティングライブラリをご紹介 - Qiita
  • まだまだ増殖中!iOSの開発をもっと劇的に改善する最新のwebサービス、開発ツール集2 - Qiita

    by @mixiappwchr dev tools Origami facebook製のQuartz ComposerでUIモックが作れるというかっこいい以外何も言えないツールです。サンプルがfacebookタイムラインです PonyDebugger square製のnetwork,ui,coredataなどのDebuggingができるツールです。ちゃんとまだ使ってないですが、ブラウザのdebug consoleに近い感じでつかえるので便利そうです。 ただ現状書いてあるinstall方法だとおちてしまうので,治るまでは以下のようにするとよさそう curl -s https://cloud.github.com/downloads/square/PonyDebugger/bootstrap-ponyd.py | python - --ponyd-symlink=/usr/local/bin/

    まだまだ増殖中!iOSの開発をもっと劇的に改善する最新のwebサービス、開発ツール集2 - Qiita
  • iOSでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、フレームワーク、ライブラリのまとめ! - Qiita

    画像を表示しようとしたら遅いよ! 外部データを取ってきて表示するときにまずはまるのが画像の処理だと思います。非同期で必ず処理しましょう。 画像の非同期ロードはライブラリを使った方が早いと思います。 ヘッダーやフッタをつけたいよ! tableView.tableHeaderView tableView.tableFooterView に突っ込む方法を書いてあるのが多いんですが、今回はもっと簡単な方法としてStoryboardなどでこれらのビューを直接突っ込んで管理できるのでおすすめ。 テーブルビューの上や下にUIViewをドラッグすると UIViewをIB上で直接追加できます。 後はIBでレイアウトをくめばok 使用するクラス、フレームワーク、ライブラリ ビュー UITableViewController https://developer.apple.com/library/ios/doc

    iOSでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、フレームワーク、ライブラリのまとめ! - Qiita
  • 注目のiBeacomなどの波に乗り遅れないために!iOSのBluetooth開発を容易にするライブラリを書きました。 - Qiita

    注目のiBeacomなどの波に乗り遅れないために!iOSのBluetooth開発を容易にするライブラリを書きました。Objective-CXcodeiOSbluetoothiBeacon by @mixiappwchr http://youtu.be/l0EUo7nGNDg 最近iBeacomなどBluetooth LE周りの技術に感心が集まっており、iOSでの開発も活発になってきていると思います。 iOSではCoreBluetoothをはじめとしたBluetoothを扱うためのフレームワークが複数存在し、用途別に選べるくらい充実しています。 iOSでBluetoohLE アプリを作るための基礎知識 その中でも一番低レベルの部分まで扱うCoreBluetoothフレームワークは格的にBluetooth LEを扱うにはさけては通れません。 しかし、このフレームワークはdelegateの嵐で

    注目のiBeacomなどの波に乗り遅れないために!iOSのBluetooth開発を容易にするライブラリを書きました。 - Qiita