タグ

Objective-Cに関するd_animal141のブックマーク (30)

  • 【iPhoneアプリ】これを使えるようにならないと「マルチスレッド」について 概要編 - ゆるい感じのプログラムを書きたい。

    今回は、「マルチスレッド」についてです。 iOSの開発を行うにあたり、必要不可欠だと思い記載します。 今回は概要編と実装編の2部構成で記載します。 また、mixiのiOSTraningのサイトを参考にして 自分自身が見返した際に分かるような形に編集しています。 ■参考サイト https://github.com/mixi-inc/iOSTraining/wiki/8.2-Grand-Central-Dispatch iOSのマルチスレッドについて マルチスレッドを行うには以下の方法があります。 NSThread ・スレッドを立てて、そのスレッドの中で処理を行う。 ・スレッドの管理やキューイングなどの管理はアプリケーションが行う GCD (dispatch_xxx) ・スレッドの管理などをOSレベルで実装。 ・処理をしたいタスクをBlockで渡す。 ・渡されたタスクはキューに挿入されて逐次実

    【iPhoneアプリ】これを使えるようにならないと「マルチスレッド」について 概要編 - ゆるい感じのプログラムを書きたい。
    d_animal141
    d_animal141 2016/01/06
    これを使えるようにならないと「マルチスレッド」について 概要編
  • KVC で setValue:forUndefinedKey: エラーが発生する場合の対処法 - その後のその後

    たとえば、CIFilterを使っていて、下記のようにinputImageに値(画像)を渡そうとしていて、 [filter setValue:_filteredImage forKey:@"inputImage"]; この filter が inputImage というプロパティを持たないものだったとき(たとえば CICheckerboardGenerator)に、こんなエラーが出ます。 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key inputImage.' 解決法はこちらにとてもわかりやすく詳細な記事があって、以下は単なるその抜粋になります。 何が起きているのか? setValue:ForKey:

    KVC で setValue:forUndefinedKey: エラーが発生する場合の対処法 - その後のその後
    d_animal141
    d_animal141 2015/11/29
    KVC で setValue:forUndefinedKey: エラーが発生する場合の対処法
  • 【objective-c】UITableViewにあるセル全てをループして取得する方法 - もぐめぽろぐ

    NSMutableArray *cells = [[NSMutableArray alloc] init]; for (NSInteger j = 0; j < [tableView numberOfSections]; ++j) { for (NSInteger i = 0; i < [tableView numberOfRowsInSection:j]; ++i) { [cells addObject:[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:j]]]; } }

    【objective-c】UITableViewにあるセル全てをループして取得する方法 - もぐめぽろぐ
    d_animal141
    d_animal141 2015/10/14
    UITableViewにあるセル全てをループして取得する方法
  • [UIView willMoveToSuperview:] が便利です

    UIKitやFoundationには、iOS 2.0のころから存在するのに、意外と知られていない便利なメソッドやプロパティがたくさんあります。今回はUIViewのメソッドをご紹介します。 UIViewはUIViewControllerと違ってライフサイクルが単純で、どのタイミングで自分自身が画面上に追加されたのか、どのタイミングで自分自身が画面から外されたのか、などを把握しづらいとお嘆きの方がいらっしゃると思います。事実その用途のためだけにUIViewControllerを使ってプログラミングをしている人も見かけます。そこで以下のメソッドをご紹介です。willMoveToSuperview:自分自身が新しいSuperview以下に移動しようとしたとき(新しいSuperviewに対してaddSubview:されようとしたとき)に呼び出されます。didMoveToSuperview自分自身が新

    d_animal141
    d_animal141 2015/10/08
    A-Liaison BLOG: willMoveToSuperviewが便利
  • Swiftから透けて見えるAppleのコンパイラ技術

    連載は、はてなエンジニアが、はてなのサービスを支えている技術や日頃注目している技術について解説するものです。Appleは毎年WWDCでいくつもの新規技術を発表していますが、筆者はその中でもObjective-Cの進化に特に注目していました。新たに追加されるAPIやサービスの前では、Objective-Cの進化はあまり注目されてきませんでしたが、実はここ数年の間も進化し続けていました。これにはAppleがコンパイラ技術にコミットしてきたことが大きく影響しています。今回は、Appleのコンパイラ関連技術を振り返り、Swiftにどう繋がるのかを解説します。 はじめに SwiftAppleによって開発された全く新しいプログラミング言語です。WWDC 2014で稲のように現れたこのプログラミング言語は、またたく間に世界中のモバイルアプリ開発者の注目を集めました。 Swiftは衝撃的な登場だった

    Swiftから透けて見えるAppleのコンパイラ技術
    d_animal141
    d_animal141 2015/09/15
    Swiftから透けて見えるAppleのコンパイラ技術 (1/2)
  • Autolayout に対応した画面で UIScrollView を使う時のコツ - A Day In The Life

    iOS 6から導入された Autolayout(オートレイアウト)を最近になって格的に使うようになりました。 4-inch の iPhone が主流になりつつある中、アプリを Autolayout に対応させるのはほぼ必須といっても良いと思います。Storyboard と格闘してなんとかコツはつかめたものの UIScrollView だけは一筋縄ではいかず苦労しました。 というわけで Autolayout に対応した画面で UIScrollView を使う時のコツをまとめてみました。 なおこの記事で説明する内容は Storyboard 上で Autolayout がオンになっていることが前提になっています。 Autolayout 対応画面で UIScrollView を使うための2種類の方法 Autolayout に対応した画面で UIScrollView を使うには以下の2つの方法があ

    Autolayout に対応した画面で UIScrollView を使う時のコツ - A Day In The Life
    d_animal141
    d_animal141 2015/09/03
    Autolayout に対応した画面で UIScrollView を使う時のコツ
  • 【iOS開発】横にスクロールするページの作り方 - スマートフォンアプリ開発会社のエンジニアブログ

    はじめに こんにちは 中西です。 UIScrollViewは縦にスクロールするために主に使いますが、 こいつのpagingEnabledをYESにすると、ページの概念のある横スクロールを作ることが可能になります。 どうやるの? では、どうやるのか!? UIScrollViewをIB(Interface Builder)で作って pagingScrollViewなんて名前をつけてIBOutletで結んでおきましょう。 viewDidLoadでこんな感じに書けばいいんじゃないかな 作り方なんてさまざまあると思いますけども、viewDidLoadにこんな風に書けばよいかもしれません。 簡単に説明すると、UIScrollViewにどんどんx軸をずらしてaddSubViewしていけばOK! 最後の行のコンテンツサイズを指定するところも忘れないで!! 忘れるとハマりますよ。 - (void)viewD

    【iOS開発】横にスクロールするページの作り方 - スマートフォンアプリ開発会社のエンジニアブログ
    d_animal141
    d_animal141 2015/09/02
    横にスクロールするページの作り方
  • キー値監視を使ってみよう - たーせる日記

    こんにちは。 日の題材は、『増補改訂版Java言語で学ぶデザインパターン入門』のObserverパターンをObjective-Cで実装してみる! ……です。 Observerパターンとは、たとえば「GUIのボタンが押された!」とか「パラメータが閾値を突破した!」とか、とにかく状態が変わったタイミングですぐ次のアクションを起こせるように、対象を観察 (Observe) するための方法です(厳密な定義ではないですが……)。 『増補改訂版Java言語で学ぶデザインパターン入門』p.256より引用。 Observerパターンを使ったサンプルプログラムを読んでみましょう。ここで作るサンプルプログラムは、数をたくさん生成するオブジェクトを観察者が観察して、その値を表示するという単純なものです。ただし、表示の方法は観察者によって異なります。DigitObserverは値を数字で表示しますが、Graph

    キー値監視を使ってみよう - たーせる日記
    d_animal141
    d_animal141 2015/08/30
    キー値監視を使ってみよう
  • KVO(key value observing, キー値監視)について - 株式会社CFlatの明後日スタイルのブログ

    今回は便利なKVOについて紹介します。 KVOはKVC(key value coding)とペアになって使われるもので、特定のオブジェクトのプロパティが変化したことを 監視する場合などに使います。 私も言葉は聞いたことがありましたが使う機会がありませんでした。今回実際に使用す る機会があり、とても便利だと感じたので紹介したいと思います。 使用したのは次のような状況です。 AVFundationを使用してカメラアプリを作成していたのですが、デフォルトのカメラアプリ と同じようにピント合わせと同時に枠線を表示する必要が出て来ました。 UIImagePickerControllerを使えば枠線が自動で出るのですが、AVFundationを使っているので自分で 枠線を表示し、さらにピントがあったタイミングで枠線を非表示するにする必要があります。 ピントの情報は、AVCaptureDeviceクラス

    KVO(key value observing, キー値監視)について - 株式会社CFlatの明後日スタイルのブログ
    d_animal141
    d_animal141 2015/08/25
    KVO(key value observing, キー値監視)について
  • Facebook iOSアプリのようにスクロール時にフルスクリーン表示を行うiOSライブラリを作りました - ninjinkun's diary

    明けましておめでとうございます。神トラ2クリアしました。 Facebook iOS Appのように、一覧をスクロールした際にUINavigationBarやUIToolbarを隠してフルスクリーン表示をするためのライブラリを作りました。 https://github.com/ninjinkun/NJKScrollFullScreen スクロールをフックしてフルスクリーン化をdelegateで通知する部分と、フルスクリーン時の動きを定義する部分を分離した設計になっています。 同じようにフルスクリーン化を行うYIFullScreenScrollというライブラリがあったのですが、UINavigationBarの移動などフルスクリーンの動きの部分が一体になっており、Facebook appぽい挙動にカスタマイズし辛かったので、動きを分離した設計のライブラリを別に作ることにしました。all-in-o

    Facebook iOSアプリのようにスクロール時にフルスクリーン表示を行うiOSライブラリを作りました - ninjinkun's diary
    d_animal141
    d_animal141 2015/08/21
    Facebook iOSアプリのようにスクロール時にフルスクリーン表示を行うiOSライブラリ
  • Objective-C で書いたアプリを Swift で書き換える5ステップ - その後のその後

    iBookでSwiftの解説出ましたが、言語自体にはそれほど興味がないので、実践的なところとして、手始めに「Objective-Cで書いた既存アプリをSwiftで書き換える」ところからやってみました。 アプリ全体、となると壮大なテーマになってしまうので、まずは AppDelegate だけ書き換えてみます。 なお、NDA 下にある Xcode 6 については書けないので、ビルド設定等については割愛しています。 1. 拡張子を .swift にする 例えば AppDelegate.m なら、AppDeleagate.swift にします。 2. import の書き換え ヘッダの import も移してきて、 #import <UIKit/UIKit.h> だったのを import UIKit にします。 3. クラス宣言の書き換え これもヘッダから移してきて *1 、 @interfac

    Objective-C で書いたアプリを Swift で書き換える5ステップ - その後のその後
    d_animal141
    d_animal141 2015/06/14
    Objective-C で書いたアプリを Swift で書き換える5ステップ
  • ダイナミックObjective-C (2) Objective-Cの動的型付け | マイナビニュース

    CocoaとObjective-Cの動的な特徴を探っていく連載だが、今回は動的な型付けについて説明しよう。 オブジェクトの型 Objective-Cは、オブジェクト指向を取り入れたCの上位言語である。しかし、そのアプローチの仕方は、C++と比べるとかなり異なっている。C++が構造体を拡張する形でクラスを採用したのに対して、Objective-Cでは、オブジェクトのためにSmalltalkに近い完全に別の文法を取り入れている。 つまり、Cと Smalltalkという異なる2つのスタイルの文法が入り交じることになる。これはObjective-Cが分かりにくい、と批判される理由のひとつとなっている。だが、通常のCの考えかたとオブジェクト指向はもともと別物だから、文法が異なるのは仕方が無い、と考えてしまえば、この割り切り方はいっそすがすがしいともいえる。 さて、そんなObjective-Cでは、

    ダイナミックObjective-C (2) Objective-Cの動的型付け | マイナビニュース
    d_animal141
    d_animal141 2015/06/08
    ダイナミックObjective-C (2) Objective-Cの動的型付け
  • Nibファイルを使用して、UIViewのパーツを使い回す | App Camp

    複数の画面で同じパーツを使いたい時などに、Nibファイルでパーツを作っておくとレイアウトの使い回しが出来るので非常に便利。StoryBoardからしかレイアウトを作成した事が無い人でも、非常に簡単に実装出来て、かなり便利な機能なので覚えておいた方がいいと思う。 NibTextSample22 downloads 実装方法 ①XCodeでFile -> New -> Fileと選択。 ②Cocoa Touch -> Objective-C Classを選択しNext ③今回はクラス名を「Custom」にして、Subclass ofを「UIView」に変更後、任意のフォルダにクラスを作成。 ④Xibファイルを作成。XCodeのFile -> New -> Fileを選択。 ⑤UserInterfaceを選び、Viewを選択しNext。 ⑥DeviceFamilyを「iPhone」にする。 ⑦フ

    Nibファイルを使用して、UIViewのパーツを使い回す | App Camp
    d_animal141
    d_animal141 2015/05/19
    Nibファイルを使用して、UIViewのパーツを使い回す
  • 【iPhoneアプリ】これを使えるようにならないと「マルチスレッド」について 実装編 - ゆるい感じのプログラムを書きたい。

    今回も、「マルチスレッド」についてです。 前回、概要編との事で記載していましたが 今回は実際にプログラムを書いて、動かしてみる実装編を記載して行きます。 GCD実用例の前準備 GDCを用いた実用例の紹介の前に以下の準備をします。 ・スレッドテスト開始用ボタンの描画 ・スレッドテスト開始用ボタンのアクション処理 まず、始めに「スレッドテスト開始用ボタン」を以下のコードを 記述して描画させます。 ■ViewController.m #import "ViewController.h" @implementation ViewController{ MultiThread *Multi; } - (void)viewDidLoad { [super viewDidLoad]; Multi = [[MultiThread alloc] init]; UIButton* bt = [Multi Th

    【iPhoneアプリ】これを使えるようにならないと「マルチスレッド」について 実装編 - ゆるい感じのプログラムを書きたい。
    d_animal141
    d_animal141 2015/05/19
    これを使えるようにならないと「マルチスレッド」について 実装編
  • iOS GoogleMapsの新しい拡大縮小ジェスチャをGestureRecognizer化する | DevelopersIO

    Google Mapsアプリの拡大・縮小ジェスチャ 先日リリースされたiOSの新しいGoogle Mapsに、マップの拡大・縮小操作のジェスチャが新しく追加されました。ダブルタップ後にそのまま指を離さずに上下にパン(ドラッグ)すると拡大・縮小操作が行えるというもので、実際に使ってみると片手でも操作しやすくとてもいい感じでした。そこで、今回はこのジェスチャを簡単に使えるGestureRecognizerとして実装してみました。 開発環境は以下の通りです。 OSX Mountain Lion Xcode 4.5.2 iOS SDK 6.0 Apple LLVM Compiler 4.1 iPhone5 (iOS 6.0.1) ソースコードはGitHubで公開しています。 ジェスチャのルールを考える 実装に入る前に、まずはジェスチャのルールについて考えます。 まずは、ジェスチャの開始と終了につい

    d_animal141
    d_animal141 2015/05/01
    iOS GoogleMapsの新しい拡大縮小ジェスチャをGestureRecognizer化する
  • iPhoneアプリで位置情報と地図を使うための基礎知識

    iPhoneアプリで位置情報と地図を使うための基礎知識:iOSでジオ(GEO)プログミラング入門(1)(1/3 ページ) 利用が加速するジオ(GEO)メディアを使いこなそう 最近、携帯電話端末(ケータイ、ガラケー、フィーチャーフォン)やスマートフォンなどのモバイル端末での位置情報・ジオ(GEO、Geographical)メディアの利用が加速しています。 多くのソーシャルサービスは、位置情報付きで投稿する機能を備えていて、チェックイン系のサービスも人気です。位置情報を利用したAPIも多く公開されており、マッシュアップによって個人でも面白い位置情報アプリを作成できます。 連載では、iOS(iPhoneiPad/iPod touch)で動く「現在地の近辺で撮影された写真を地図上に表示するアプリ」を作りながら、位置情報アプリを作成するための「測位機能の取り扱い」「地図の取り扱い」「サーバとの通

    iPhoneアプリで位置情報と地図を使うための基礎知識
    d_animal141
    d_animal141 2015/04/22
    iOSでジオ(GEO)プログミラング入門(1):iPhoneアプリで位置情報と地図を使う
  • MKMapViewの初期中心点をユーザの現在地に設定する方法 - Takahiro Octopress Blog

    MKMapViewの中心位置について考えた 日はMKMapViewの初期表示について説明します。MKMapViewを扱うときにはユーザの位置情報を用いることが多いと思います。そのほとんどの場合、マップを初期表示したときにユーザの現在地を中心にしたいのではないかと思います。しかしながらiPhoneで位置情報を取得するとき、アプリを起動して即座に現在地を特定することはできません。では、『どうするのか?』について失敗談を交えつつ紹介させて頂きます。 まずは失敗例から紹介します。 筆者はユーザの現在地をマップの中心位置に設定するということに意識が向きすぎたせいか当初は下記の手段を取っていました。 下記はViewController.h #import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> #import <MapKit/Map

    d_animal141
    d_animal141 2015/04/20
    MKMapViewの初期中心点をユーザの現在地に設定する方法 -
  • UITabBarControllerを効率的に実装出来るライブラリを書いた | Technology-Gym

    UITabBarControllerはタブバーのコントローラーですが、 タブバーは細かいデザインの調整を行う場合はUITabBarControllerのサブクラスを作って実装するパターンが多いと思います。 一つのStoryBoardに全てのタブの参照がある場合はInterface Builderなどでもある程度はデザインを設定できますが、StoryboardをViewController毎やタブ毎等に分けていた場合はInterface BuilderだけだとIBOutletを結べなくなります。 運用的にはタブやViewControllerでstoryboardファイルを分けた方が扱いやすいと感じるので、タブを関連付けるにはUITabBarControllerのサブクラスを作ってコードで結んでいく必要があります。 Storyboardを1画面ごとに分割した話 – 24/7 twenty-fo

    d_animal141
    d_animal141 2015/04/16
    UITabBarControllerを効率的に実装出来るライブラリを書いた
  • iOS7 と iOS8 の、両方に対応したアプリを作る - Intelligent Technology's Technical Blog

    こんにちは。中山です。 先日、iOS8 が正式に公開されました。 いろいろと新しい機能が追加されているようですが、しかし、多くの iOS 開発者がいちばん気にしているのは、 「これまでつくったアプリは、そのまま動くのだろうか?!」 というところだと思います。 今回は、iOS8 で変更があったところを中心に、iOS7、iOS8 の両方で動作するアプリを作るためのテクニックを、いくつかピックアップして紹介してみようと思います。 変更その1:UIScreen の bounds、applicationFrame の size が、端末の向きに依存するように 例えば以下のような、UIScreen の bounds、applicationFrame プロパティを用いてスクリーンのサイズを取得する処理があるとします。 NSLog(@"bounds: width = %f, height = %f", [

    iOS7 と iOS8 の、両方に対応したアプリを作る - Intelligent Technology's Technical Blog
    d_animal141
    d_animal141 2015/04/05
    iOS7 と iOS8 の、両方に対応したアプリを作る -
  • facebookの"Building Paper"はすべてのiOSエンジニアが見るべき

    huin Job : Software Engineer(iOS, Android) Use : Objective-C, Swift, Java Like : Gadget, Apple, Photography, Art, Design, UI, UX More posts by huin. 日のAppStoreでは未だ公開されていないfacebookの「Paper」ですが、 そのUIは実験的ながらも非常に高い完成度で個人的にはすごく好きなアプリです。 良いアプリがあれば "どうやって作っているのか" が気になるのがイチiOSエンジニアの性なんですが、facebook自体がPaperの裏側について説明した動画をしていて、非常に良い内容だったので紹介します。 なんのイベントなのかはよくわかってないのですが、 公開日は4/18なので比較的最近だと思います。 当然英語なので理解は浅いのです

    facebookの"Building Paper"はすべてのiOSエンジニアが見るべき
    d_animal141
    d_animal141 2015/03/22
    facebookの"Building Paper"はすべてのiOSエンジニアが見るべき