タグ

Objective-Cに関するblueleのブックマーク (44)

  • @synchronized による排他制御を行う : Objective-C プログラミング

    Objective-C には @synchronized という、複数スレッドからの同時アクセスをブロックする排他制御を行う仕組みが用意されています。 この @synchronized ディレクティブでは、引数に指定した Objective-C インスタンスをキーにして、他からの同時アクセスをブロックしたり、他がブロックを解除されるのを待ったりできます。 これと同等の排他制御として ミューテックス があります。 他にも セマフォ、@property の atomic キーワード、NSLock、NSRecursiveLock などが利用できます。 クリティカルセクションを保護する 同時アクセスされたくない個所を、キーとして使う Objective-C インスタンスを引数にして @synchronized で括ります。 引数に渡すキーには self も使えるので、クラスインスタンス全体で 1

  • ブラウザ開発で使用した超絶便利なオープンソースライブラリ10選 - showrtpath - iOSブラウザ開発日記

    2013-12-18 ブラウザ開発で使用した超絶便利なオープンソースライブラリ10選 こんにちはnasustです。Showrtpathブラウザ( http://showrtpath.com )の開発で使用したオープンソースを全て紹介したいと思います。 正直言って、このオープンソースが無ければ3倍近くの開発期間が延びたでしょう。ちなみにShowrtpathブラウザの開発期間は、大凡2人月ぐらいです。 BlocksKit https://github.com/pandamonia/BlocksKit このライブラリが無ければ、iOS開発の面白さは半減するでしょう。iOSのクラスにあるデリゲータと対応するBlocksのメソッドを追加してくれます。 [Button addEventHandler:^(id sender) { //Buttonが押された時の処理 } forControlEvents

    ブラウザ開発で使用した超絶便利なオープンソースライブラリ10選 - showrtpath - iOSブラウザ開発日記
  • iOS7でナビゲーションバーやステータスバーをカスタマイズする - Qiita

    iOS7からステータスバーの背景とナビゲーションバーが一体化し、ステータスバーの文字列スタイルをViewControllerで制御するためのdelegateが追加されたのでメモ。 ナビゲーションバーをカスタマイズする ナビゲーションバーの色を変える まず、ナビゲーションバーの背景色はbarTintColorで変更できる [UINavigationBar appearance].barTintColor = [UIColor colorWithRed:0.000 green:0.549 blue:0.890 alpha:1.000];

    iOS7でナビゲーションバーやステータスバーをカスタマイズする - Qiita
  • Objective-C でWebSocketの通信をする(SocketRocket) - 病みつきエンジニアブログ

    今流行(?)のWebSocketちゃんですが、Objective-Cで触るための日語のサイトがあまりなかったので。 手順としては、node.js でWebSocket のサーバーを作り(not Socket.IO)、SocketRocketを使ってそのサーバーに接続します。 node.js、Objective-Cともに触ったことがある人を対象にした記事です。 WebSocketサーバーを作る Socket.IOというのがありますが、今回は使いません。というのも、Socket.IOは「ソケット通信っぽいことをするためのライブラリ」で、WebSocketで繋げないブラウザにはLong Pollingやらでソケット通信風のことをするよう、ラッピングしています。そのため、今回のようにWebSocketだけで接続する場合には適していません、というかSocketRocketが対応していません。 さて

    Objective-C でWebSocketの通信をする(SocketRocket) - 病みつきエンジニアブログ
  • MacOS 10.10 Yosemite、新プログラミング言語Swiftが発表!さてさて・・・:電脳ヒッチハイクガイド:電脳空間カウボーイズZZ(電脳空間カウボーイズ) - ニコニコチャンネル:生活

    shi3zです。 昨夜はWWDCのKeynoteで眠れない人もいたみたいだけど、新しいiPhoneも新しいMacBookも出なくてちょっと肩すかしだったかな? とはいえ、MacOS 10.10の発表はAppleとしてはかなり大きな発表だったし、それ以上に全く新しいプログラミング言語環境Swiftはドギモを抜く、と呼ぶのに相応しい内容だったんじゃないかと思う。 個人的にはWebGLがついに公式サポートされたことは非常に大きい。 これでついにgl.enchant.jsが残念な子じゃなくなる! まあ詳しい内容はエンガジェかなんかで 特に目を引くのはSwiftで、長年続いたObjective-Cにさようなら、こんにちはSwift、という話なんだけど、これは驚天動地の発表なんじゃないかと思う。 というのは、今回、WWDC(世界開発者会議)に来ているのは当然、全てがObjective-Cの開発者たちな

    MacOS 10.10 Yosemite、新プログラミング言語Swiftが発表!さてさて・・・:電脳ヒッチハイクガイド:電脳空間カウボーイズZZ(電脳空間カウボーイズ) - ニコニコチャンネル:生活
  • C/Objective-C + Blocks でクロージャ - TrashSUITE

    Blocks というのは Apple が C/C++/Objective-C 向けに独自実装したクロージャ的な機能.Snow Leopard リリース時に GCD すげぇ!という記事で見かけて『Apple やりやがった,あの変態やりやがった』くらいにしか思っていなかったのだけど,iPhone OS4.0 で使うことになりそうなので,ザックリと調べてみた ザクザクっとドキュメントを読みつつテストしつつという状態で書いたメモなので,嘘を書いている可能性が大いにある! 以下,Blocks をクロージャと呼ぶ シンプルに // 無名でダイレクトに呼ぶ ^(void) {puts("closure");}(); //=> closure ^() {puts("closure");}(); //=> closure ^{puts("closure");}(); //=> closure // 名前を付

  • [iOS5] ARC : プロパティ属性と使い方 | Natsu note

    strong __strong修飾子に対応するプロパティ属性です。strong属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 weak __weak修飾子に対応するプロパティ属性です。__weak修飾子を持った変数と同様、weak属性のプロパティも、参照先のオブジェクトが破棄されたら自動的にnilが代入されます。weak属性を用いたプロパティはオーナーシップ権を持ちません。 weak属性は、delegateやOutletの変数に最適です。 なお、iOS 4では__weak修飾子が使えないため、プロパティのweak属性も使えません。この場合は、後述のunsafe_unretainedを使いましょう。 copy __strong修飾子に対応しますが、実際にはコピーオブジェクトが代入されます。copy属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 unsafe

  • UITableViewでページング処理をする。 - 24/7 twenty-four seven

    App Storeとかであるんだけど、UITableViewの最初の20件とかを 読み込んでおいて、もっと見たい場合は一番下のセルの 「ほかの??件を読み込む」 とか 「次の??件…」 ってのを押すとインジケーターがぐるぐる回って そこにセルがインサートされるみたいなやつを作りたくて 検索してみたけど実装する方法がみつからない。 あれってどうやればいいんだろう…。 もうちょっと探してみる。 UITableViewで「ほかの??件を読み込む」を実装する方法がわからない - clouderのiPhoneアプリを公開するまでの日記 - iPhoneアプリ開発グループ 「次の??件…」を表示するために最初のデータ件数+1をテーブルビューの行数とします。 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NS

    UITableViewでページング処理をする。 - 24/7 twenty-four seven
  • NSLogをちょっと便利にするTips - Qiita

    iOS開発においてNSLogを利用する事が度々あると思いますが、 それらを少し便利するようなTipsのご紹介を。 ※若干俺得感がありますが。 以前もブログに簡単に書いたのですが、記事が分かれてしまっていたので まとめる意味も込めて。 iOS向け Xcode開発Tips入門編 -とりあえず最初にやってること- 【iOS】 Xcode開発Tips入門編その3 -NSLogあれこれ3つほど- こちらにも紹介しましたが、マクロを使う事でよりログ出力がよりシンプルに 実装できます。 0. デバッグ時のみに出力し、リリース時には出力をしない。 NSLogで出力しているものをそのままリリースすると だだ漏れするという問題が発生するので、

    NSLogをちょっと便利にするTips - Qiita
  • [Objective-C] クラス拡張と無名カテゴリ - Qiita

    この記事にリンクして、詳細に書いてくれている記事があったので紹介。 クラス拡張とカテゴリの違いの話。 Objective-Cの内部実装にも触れて分かりやすく書いてくれているので、より どういう違いがあるかが分かるかと思います。 AppleのiOS View Controllerプログラミングガイドを読んでいて気づいた。 なんで実装ファイルの方で@interfaceを宣言しているんだろうと思っていたのだけど、これはどうやら クラス拡張 というものらしい。 似たような仕組みに、 カテゴリ がある。 カテゴリは@interface Hoge(anyCategory)で宣言するやつ。 これを無名にしている(つまり@interface Hoge())のが、実装ファイルでよく書かれているやつだ。 なるほど、無名カテゴリだから()なのか。 と腑に落ちたことをTwitterでつぶやいたら、「いや

    [Objective-C] クラス拡張と無名カテゴリ - Qiita
  • カテゴリーとクラスエクステンション - Toyship.org

    カテゴリーとクラスエクステンションは、Objective-Cで使えるクラス拡張の方法です。 既存のクラスにメソッドを追加したりクラスの分割をしたりすることができるので、中級以上のObjective-Cユーザーには必須の機能です。 カテゴリーによるメソッド追加 カテゴリーを使うと、既存のクラスにメソッドを追加することができます。 自分でつくったクラスにメソッド追加することもできますし、システムのフレームワークの中のクラスに追加することもできます。 例えば、NSStringクラスに二つの新しいメソッドを付け加えた例を見てみましょう。 まず、追加メソッドのヘッダーファイルはこうなります。 // NSString+ToyshipMode.h @interface NSString (ToyshipMode) + (void)ToyshipMode1; - (void)ToyshipMode2; @

    カテゴリーとクラスエクステンション - Toyship.org
  • NSArrayでfor(; ;)とかfor-inを使うのをやめて、enumerateObjectsUsingBlock:を使う - Qiita

    NSArrayでfor(; ;)とかfor-inを使うのをやめて、enumerateObjectsUsingBlock:を使うObjective-CiOS

    NSArrayでfor(; ;)とかfor-inを使うのをやめて、enumerateObjectsUsingBlock:を使う - Qiita
  • UINavigationController で1つの画面から複数の画面に遷移したい - なんとなく

    UINavigationController を1つのViewController にRoot設定したら、階層で 画面遷移するのは、周知の通り。多分。 で、1つの画面から 違う2つの画面に遷移したい。A画面で Bボタンを押したら、B画面。 Cボタンを押したら、C画面っていう風に。 ☆やりたいことのイメージ ☆普通の階層遷移は こんな感じ。 普通の方は、遷移画面が1種類。やりたいのは1つの画面から2つ以上の画面に 遷移したい。で、普通のように、 BViewController *bViewController = [[BViewController alloc] initWithNibName:@"BViewController" bundle:nil]; [self.navigationController pushViewController:bViewController animat

    UINavigationController で1つの画面から複数の画面に遷移したい - なんとなく
  • iOSゆとりプログラミングのススメ - 仕事人の開発日誌

    iOS Advent Calendar 2011という今年を締めくくる売名イベントが突如発足したので我こそはとエントリーしたわけなんだが。http://atnd.org/events/22792 俺は入門書をいくつ読んでもアプリをいつまでたっても完成させることのできないお前らの為にわざわざ書き下ろす事にした。精力的に入門記事を書いているもとまかさん(@motomaka)ですら書いていない内容をな! 今更ですがiOSアプリ開発の基礎について色々調べてみましたhttp://d.hatena.ne.jp/moto_maka/20110425/1303673150 12月3日までの記事は以下の通り。 12月1日 @glassonion1 失敗しない iOS In-App Purchase プログラミング12月2日 @k_katsumi CAEmitterLayer でクリスマスは爆発しろ12月3日

    bluele
    bluele 2014/04/15
    appdelegate
  • 第 2 回・iOS7で iBeacon を使用してみよう! | ギャップロ

    新機能 iBeacon とは? 指定した領域を観測するために iOSでは以前から Core Location フレームワークを使用していました。その Core Location フレームワークに、今回新たに iBeacon という機能が追加されました。 以前までは、デバイスを観測するために、地理的地域の観測を行っていました。この方法は GPS 等の機能を使用してデバイスを検出する、という方法をとっていたために近距離の観測には向かず、また屋内では GPS が取得できないことが多いなどの問題点がありました。 iBeacon は、Bluetooth LEを使用することで、「ビーコン」と呼ばれる発信器の、近接や距離を検知する事が出来るようになります。このビーコンには、「Bluetooth LEタグ」という名称で市販されている物や、iOS 端末を使用する事が出来ます。これにより、GPS では実現でき

    第 2 回・iOS7で iBeacon を使用してみよう! | ギャップロ
  • モダンなインスタンス変数の扱いとプロパティ宣言 - jarinosuke blog

    導入 最近、最近ふと 詳解 Objective-C 2.0 初版 を手に取る(電子化しているので実際に手に取るのは Kindle ですが)機会がありました。 もちろん最新の3版も持っているのですが、初版と比べて読み進めてみると色んな事を振り返る事ができて楽しいんですね、もう歴史です。 言うまでもなく、Objective-C は僕が関わってきた約5年近くだけでも凄まじい発展を遂げています。 コミュニティも WWDC や Developer Forum を初めとして、最近では CocoaPods など 3rd party のものまで活発になっています。 そのような環境の中でも、たまにそれらの範囲外では数年前の「構造」のままのコードを見る事があったりもします。 「構造」と少々分かり辛く書いているのは、以下のような「コーディング規約」を超えた考え方だと思ったので分けて書いています。 もちろんどちら

    モダンなインスタンス変数の扱いとプロパティ宣言 - jarinosuke blog
  • Undercore – Facts Don't Bite Ever

    Hotshot pokies are so popular because these games are unique. All our hotshot pokies are supplied by many different suppliers. Hotshot pokies have been converted to online hotshot pokies due to success in the casinos. You can play these online hotshot pokies for free and for money. Play the Hotshot pokies online for free here to test if you like this pokie machine from HotShots. Hot Shot online po

  • NavigationBar を画面によって、表示・非表示にするメモ - なんとなく

    トップ画面では、ナビゲーションバーを非表示にしたい、でも詳細画面では 表示したい、という時のメモ。 [self.navigationController setNavigationBarHidden:YES animated:NO]; ↑コレでもイケルんだけど、画面遷移の制御(戻った時とか)が、面倒。 なので、コレ。 // 当画面表示時 - (void)viewWillAppear:(BOOL)animated { [superviewWillAppear:animated]; // NavigationBar 非表示 [self.navigationControllersetNavigationBarHidden:YESanimated:YES]; } // 当画面から別画面遷移時 - (void)viewWillDisappear:(BOOL)animated { [superview

    NavigationBar を画面によって、表示・非表示にするメモ - なんとなく
  • UIRefreshControlで引っ張って更新をする - Qiita

    facebookなどのアプリでよく見る、引っ張って更新(Pull to Refresh)を実装する方法です。 実装はかなり簡単です。UIRefreshControlのインスタンスをUITableViewControllerのUITableViewControllerにセットするだけです。 更新処理はUIRefreshControlのaddTarget:action:forControlEvents:でアクションを設定すればOKです。 - (void)viewDidLoad { [super viewDidLoad]; UIRefreshControl *refreshControl = [[UIRefreshControl alloc]init]; // 更新アクションを設定 [refreshControl addTarget:self action:@selector(onRefresh

    UIRefreshControlで引っ張って更新をする - Qiita
  • UITableViewのページング(最下部セルまでスクロールしたら次の○件読み込んで表示)方法 - Qiita

    アプリで結構見かける?TableViewの最下部までスクロールしたら次の○件を自動で取得して表示するやつです。 次の○件を読み込むタイミングは一番下までスクロールしたかどうか判定すれば良いです。 これはUITableViewに内包されているUIScrollViewのデリゲートで判定します。 実装 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { //一番下までスクロールしたかどうか if(self.tableView.contentOffset.y >= (self.tableView.contentSize.height - self.tableView.bounds.size.height)) { //まだ表示するコンテンツが存在するか判定し存在するなら○件分を取得して表示更新する } }

    UITableViewのページング(最下部セルまでスクロールしたら次の○件読み込んで表示)方法 - Qiita