タグ

objective-cに関するpochisatoのブックマーク (30)

  • dispatch_asyncでバックグラウンドタスク | Professional Programmer

    GCD(Grand Central Dispatch)を使って, バックグラウンド処理を行います。 iOSでは, NSOperationを使った方法でも可能です。方法と挙動は似たようなものです。 dispatch_asyncを使うメリットとしては, 処理の記述にブロックが渡せるので, クラス同士の データの受け渡しが簡単(closureのように使える訳ですはい)です サンプル dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Background operations dispatch_async(dispatch_get_main_queue(), ^{ // Main Thread }); }); これだけです, dispatch_asyncを呼び出すだけです。Queu

  • NSIntegerとかCGFloatとか - なるようになるかも

    NSInteger/ NSUInteger NSIntegerやNSUIntegerは32bit/64bit環境では異なる型として扱われる。NSIntegerの場合、32bit環境ではint、64bit環境ではlongとして扱われる。 なおarm64の処理系ではint型そのものは32bitの値として扱われる。それまでのarm7まではintもlongも同じ32bitの値として扱われていたので差がなかったのが(意外に知らない人が多い)、arm64にてlongが倍精度に変更された。 そのため、 NSInteger aValue = 100; NSLog(@"%d", aValue); 例えばこんなコードも、64bitアーキテクチャを対象に含めると警告が出てしまう(NSIntegerがlongのため、%ldを使う必要がある)。もっとも、aValueの値が32bitの範囲を超えない限り、実際に問題に

    NSIntegerとかCGFloatとか - なるようになるかも
  • Objective-C再入門 - こんにちはこんにちはmonmonです!

    すっかり忘れてしまっていたので詳解 Objective-C 2.0 改訂版を一通り読んだ。 このはみんなに勧められるだけありますね。 「こういう問題点があります。だからこうします。」 の流れがわかりやすくて読んでて楽しかったです。 問題となるようなサンプルコードを上手く持ってくるのもすごいなぁと思いました。 ということで、読んだメモ。 インタフェースの概念 重要なのは「使いたいクラスでどういう呼び出しができて、どういう戻りがあるのか」ということ なのでObjective-Cではinterfaceという中でそれを書いている こういう「送信」をしてくれれば、こういう「応答」をしますよ これを.hに書いてくれているので、そのクラスを使う人は.hだけ見ればいい .mでどんな実装してるかなんて興味ない なんでNSってのが頭に付いてるのが多いの? 元々NeXT社がObjective-CでNEXTST

  • 夜趣福利导第一导航|性交描述小说|男人插曲女视频40分钟|影音先峰男人资源

    鸟归巢:夜趣福利导第一导航|性交描述小说|男人插曲女视频40分钟|影音先峰男人资源,一部不行就来两部,身体要紧且看且珍惜。

  • 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 // 名前を付

  • Objective-CのSingleton、その歴史的経緯など - Toyship.org

    Objective-Cのシングルトンって、昔はcopyWithZoneとかもあって、無駄に面倒だったような記憶があるんだけど、いつの間にか簡単になったんだっけ……?と思ってたので、ちょっと整理してみました。 ARCとGCDが出る前からシングルトンを実装してた人にはちょっと懐かしい話かもしれません。 Singletonとは 改めて説明するまでもないですが、シングルトンとはプロセス内のどこからよんでも同じオブジェクトにアクセスできるようにするデザインパターンです。 どのプログラミング言語においても重要なデザインパターンです。 iOSのシステムフレークワークでもよく使われており、 などはおなじみですよね。 上のメソッドは何回呼んでも同じオブジェクトがかえるようになっているので、いつでも同じオブジェクトに対して処理をすることができます。 自分で実装しなくても、ほとんどの人はシングルトンパターンを使

    Objective-CのSingleton、その歴史的経緯など - Toyship.org
  • -ObjC とか -all_load って何をやってるのか調べてみた

    よく外部のライブラリやFrameworkをiOSのプロジェクトに取り込むときに、つけないと動かないからつけてねと言われる、 Other Linker Flag = -ObjC -all_load のフラグ。これって何をやっているのか今までずっと気になっていたので、ちょっと調べてみました。 こういうことらしいです。 http://developer.apple.com/library/mac/#qa/qa1490/_index.html This flag causes the linker to load every object file in the library that defines an Objective-C class or category. While this option will typically result in a larger executable (

    -ObjC とか -all_load って何をやってるのか調べてみた
  • 実行ループとdispatch_sourceの話。 - なるようになるかも

    いまやiOSのネットワーク処理といえばAFNetworkingな感じです。 しかし古いストリーミングAPIを使った経験があれば、ブロックベースのAPIでどうやってネットワーク通信を行っているのか疑問に思うはずです。なぜかというと、 GCDは実行ループを持てない からです。 そもそも実行ループとは何なのでしょう。 実行ループとは NSRunLoop Class Referenceより The NSRunLoop class declares the programmatic interface to objects that manage input sources. An NSRunLoop object processes input for sources such as mouse and keyboard events from the window system, NSPort

    実行ループとdispatch_sourceの話。 - なるようになるかも
  • Swift および Objective-C を使用した iOS メモリー管理で絶対に失敗しないための 7 つのヒント

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Swift および Objective-C を使用した iOS メモリー管理で絶対に失敗しないための 7 つのヒント
  • objective-cのweak, strongについて挙動の検証 - 京都で働くCTOの日記

    京都のしがないスタートアップで働くCTOです。 技術ブログ始めてみました。 よろしくお願いしますー。 さてさて、社内勉強会用にobjective-cのproperty属性についてスライドを作りました。 objective-c propertyの属性について from Hiroki Uemoto 社内で説明した時に ・ 強い参照(strong) ・ 弱い参照(weak) についてツッコミが入りました。 この記事ではもう少し掘り下げて書いてみたいと思います。 ○ オーナーシップ ARC環境において、オブジェクトが解放されるかどうかは別のオブジェクトがそのオブジェクトの所有権を持つかどうかで決まります。所有権をもつオブジェクトがいる場合は、そのオブジェクトは解放されません。所有権を持つオブジェクトがいなくなると解放されます。この所有権の事を「オーナーシップ」といいます。 ○ 強い参照 ARC環境

    objective-cのweak, strongについて挙動の検証 - 京都で働くCTOの日記
  • 今さら聞けないObjective-Cのメモリ管理 弱い参照と強い参照って何? | DevelopersIO

    iOS5からサポートされているARC(Automatic Reference Counting)は今まで使う機会がなかったので名前だけ知ってるみたいな状態でした。 今さらですがいろいろ調べたので調査結果をまとめたいと思います。調査した環境は以下になります。 Mac OS X 10.8 Mountain lion Xcode 4.6.3 まずは参照カウンタ方式の復習 ARCは基的には以前と同じ参照カウンタ方式を自動化したものなので、ARCをやる前にまずは手動でのメモリ管理を復習します。 まずは新しいプロジェクトを作成します。テンプレートはCommand Line Toolを使います。 今回は手動でメモリ管理するのでARCはチェックを外しておいて下さい。 プロジェクトが作成できたらCarクラスとEngineクラスを作成して下さい。テンプレートはObjective-C classです。 サンプ

    今さら聞けないObjective-Cのメモリ管理 弱い参照と強い参照って何? | DevelopersIO
  • iOS アプリの構造がどのようになっているか紐解いてみる - A Day In The Life

    iOS アプリの構造がどのようになっているのか理解しなくても簡単なアプリを開発することは可能です。実際自分も iOS アプリの開発をはじめたことろはそうでした。しかしアプリの構造を理解していないと複雑なアプリ、例えばタブとナビゲーションを組み合わせたアプリやマルチタッチやジェスチャーを使ったアプリなどを作ろうとしたときにハマることが多いです。 記事では iOS アプリの構造について説明します。 一番単純なアプリの構造 それでは iOS アプリの中でも一番単純なアプリの構造がどうなっているのか見てみましょう。 iOS で一番単純なアプリは画面を一つ表示するアプリです。画面を一つ表示するアプリはシングルビューアプリケーション(Single View Application)といいます。 ラベルもボタンもなく、ただ真っ白な画面を表示するだけのアプリがどのような構造になっているのかみてみましょう

    iOS アプリの構造がどのようになっているか紐解いてみる - A Day In The Life
    pochisato
    pochisato 2015/04/27
    基本的な構造がわかりやすい
  • [iPhone] UIView の frame と bounds の違い | Sun Limited Mt.

    UIView の位置やサイズを知るプロパティに frame と bounds があります。この frame とbounds の違いを簡単にまとめて見ました。 簡単にまとめると以下のようになります。 frame はスーパービューから見た座標 bounds はローカルのビューから見た座標 実際に親子関係のビューを作成して確認してみます。 ViewB は ViewA の中に配置されています。 [ViewA addSubView:ViewB] のような関係です。 この時の frame と bounds はそれぞれ以下のようになります。 ViewA.frame origin: 0,0 size: 550×400 ViewA.bouns origin: 0,0 size: 550×400 ViewB.frame origin: 200,100 size: 200×250 ViewB.bounds or

  • [iOS] iOSのDelegateをしっかりと理解する | DevelopersIO

    iOS の通知を知る こんにちは、iPhone アプリ開発担当の荒川です。 この記事では iOS アプリでの「通知」について紹介します。 今回扱う「通知」とは、「プッシュ通知(Push Notification)」や「ローカル通知(Local Notification)」のことではなく、特定のインスタンスから別のインスタンスへ処理を委譲することを指します。 「委譲(いじょう)」と言われると何やら難しいことのように思えますが、あるクラスに書かれた何かの処理を他のクラスで処理する事だと思って下さい。 iOS アプリケーションでは以下の通知方法がよく使われます。 Delegate(処理の委譲) Key Value Observe(キー値監視) Notification Center(情報のブロードキャスト) この中の Delegate について、Objective-C での実装方法を交えて紹介し

    [iOS] iOSのDelegateをしっかりと理解する | DevelopersIO
  • AVFoundationの基礎知識 - Qiita

    AVPlayerで動画を再生する AVPlayerを使えばとても簡単に動画を再生することができます。 まずはAVPlayerを表示するためのViewを作成し、以下のメソッドを追加します。 #import <AVFoundation/AVFoundation.h> +(Class)layerClass { return [AVPlayerLayer class]; } - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } +(Class)layerClassでは、AVPlayerのレイヤークラスを返しています。 この後記述するViewControllerの中で生成したAVPlayerクラスとを紐づける

    AVFoundationの基礎知識 - Qiita
  • イニシャライザが守るべき3つのルール - Qiita

    オブジェクトを初期化するイニシャライザ、init で始まるメソッドですね。 init とか initWithString とか。他言語でいうところコンストラクタ代わりです。 iOS開発している人なら、「指定イニシャライザ」 という単語は聞いたことある人多いと思いますが、これの意味と役割を理解せずに組んでいる人も多いのではないでしょうか? そしてイニシャライザではいくつか守ったほうがいいルールがあります。 3 Rules for initializers 結論から書くと、以下の3つルールをイニシャライザでは守ると効率的になります。 (1)必ず一つの指定イニシャライザを持つ(基的に複数はナシ) (2)指定イニシャライザ以外のイニシャライザは、必ず指定イニシャライザ経由で初期化する (3)親クラスの指定イニシャライザは必ずオーバーライドする 理由はこの記事で説明します。(※長いです) clas

    イニシャライザが守るべき3つのルール - Qiita
  • Objective-Cの定数を1ファイルにまとめる - ぴよログ

    Objective-Cがオワコン化する前にちょっとためになるかもしれないやつを書いておく。 iOSアプリ内で使う定数を1ファイルでまとめて管理するいい方法がないかを調べたときにどこかで見つけたもので、マクロの有無で宣言と定義を分けるという方法があった。 この方法を使うことで変数宣言と定義を1ファイルにまとめることができるようになった。変更箇所が一箇所で済むので少し便利になる。 // Constants.h #undef _EXTERN #undef _INITIALIZE_AS #ifdef XOYIP_DEFINE_GLOBALS #define _EXTERN #define _INITIALIZE_AS(x) =x #else #if defined(__cplusplus) #define _EXTERN extern "C" #else #define _EXTERN exter

    Objective-Cの定数を1ファイルにまとめる - ぴよログ
  • [Objective-C]初学者がObjective-Cで「?」となる部分をチェック(その1)

    その1と書きましたが、続編を書く予定はなし。 内容もそれほど濃くないのですいません。 ということで、C++を学生の頃少し触っていたということもあって、基的にObjective-Cにも入りやすいのかな~と思いきや、そうでもないんだなと。。。 基的な構文などは類似していますが、かなり不思議に感じるのがObjective-C。 早速C++とは異なる部分をストックしておこうと思います。(と、言ってもC++の知識もそれほどありませんし、もう忘れかけているのでC++と比較したとか大層なことは言えませんが、悪しからず) 1.文字列の表記 文字列は「”」で囲み、先頭の「”」の前に「@」を付けて記述し、NSStringクラスのオブジェクトとして扱われる。 また、「@」を記述しなかった場合は、C言語のNULL終端文字列として扱われる。 結局どっちでも良いのか?っという感じ。 2.変数の表記 変数の宣言をす

  • 落ちないiPhoneアプリが作りたい自分のための、押さえておくべきポイントたくさん。 - かってぃのブログ | choilog [チョイログ]

    iPhoneアプリは良く落ちる。 ランキングで上位に入ったり、話題になったりしているアプリでも落ちる時は落ちる。なぜ落ちるか? 原因のほとんどは、 解放済みのオブジェクトにメッセージを送ってしまうこと だと思います。 メモリ不足で落ちる? 「メモリ不足で落ちる」という言葉も良く使いますが、質的には メモリが不足する 自動的にオブジェクトが解放される 解放されたオブジェクトにメッセージが送られる エラー という流れで生じるものだと思います。 だから、この問題の解決策は、ふたつ。 メモリを無駄に使わない(メモリリークを無くす) メモリ不足などによって解放されたオブジェクトにメッセージが送られないようにする そのために気をつけるべきことなどを以下に列挙します。 alloc initしたら参照カウントが増えるので、かならずreleaseする。 非常に基的なことですが、確保したものは解放します。

    落ちないiPhoneアプリが作りたい自分のための、押さえておくべきポイントたくさん。 - かってぃのブログ | choilog [チョイログ]
  • NSURLConnectionをサブスレッドで使用する - Toyship.org

    iOS7でNSURLSessionがでて、少し陰の薄くなったNSURLConnectionですが、まだまだネットワーク処理の中心としてよく使われていますよね。 NSURLConnectionの使い方は比較的簡単ですが、サブスレッドからよぶときには少し注意が必要なのでまとめてみました。 サブスレッド上の処理で何を注意すべきなのか まず、最初にサブスレッドでの処理で何を一番注意すべきなのかをおさらいしましょう。 iOSでは、画面描画には主にUIKitフレームワークを使用しますが、このフレームワークはメインスレッド上の使用のみが保証されています。 例えばサブスレッド上で画面に表示した画像(UIImageView)を変更したり、ユーザーにダイアログを表示したり(UIAlertView)などの処理を行った場合、表示が遅れてしまったり、表示されなかったり、最悪の場合にはクラッシュする場合もあります。

    NSURLConnectionをサブスレッドで使用する - Toyship.org