Objective-Cに関するcolorless64のブックマーク (95)

  • iOSアプリのコーディング規約を考える時はGoogleよりもNYTimesのObjective-Cスタイルガイドを参考にすべき - Steel Dragon 14106

    iOSアプリのコーディング規約を考える時はGoogleよりもNYTimesのObjective-Cスタイルガイドを参考にすべき By raimon, 2015-03-21(土), in category Ios Googleのスタイルガイドは古い 複数人でiOSアプリをObjective-Cコードで書いて保守する時、コーディング規約を検討することになる。 参考にすべきスタイルガイドとして良く挙がるものにGoogle Objective-C Style Guideがあるが、これはいかんせん古い。メモリ管理ARCやNSNumberのリテラル構文など、比較的新しいトピックについても追記されてはいるが、 インスタンス変数のアクセス修飾子 プロパティを使う事が主流となっている2015年現在、余り扱われない autorelease を使ったオブジェクト生成など、MRC時代の規約 何よりホスティング先が

  • UICollectionView その1 セルの表示 | Cyber Passion for iOS

    UICollectionViewを使うとタイル上に任意のView(セル)を表示できます。今回はサンプルを交えてUICollectionViewの説明をしたいと思います。 サンプルコード: https://github.com/stack3/UICollectionViewSample サンプルを起動して、UICollectionViewを選択すると、以下の画面表示されます。 セルを選択すると、そのセルは青くなって以下のようにAlertが表示されます。 UICollectionViewのセルの再利用 UITableView同様にUICollectionViewもセルの再利用という概念があります。 表示する項目数が1000とかたくさんあった時に、セル(UICollectionViewCell)を1000個作るとメモリ効率がすごく悪くなります。なぜかというと実際に画面に表示されるセルは一部だけだ

    UICollectionView その1 セルの表示 | Cyber Passion for iOS
    colorless64
    colorless64 2015/03/24
    UICollectionViewの処理をxibを使ったカスタムセルの作成から解説
  • UICollectionView indexPathForItemAtPoint returning same item despite scrolling

    colorless64
    colorless64 2015/03/24
    スクロールビューを併用する場合、オフセットを加味してやらないとUICollectionView の indexPathForItemAtPoint が正しい NSIndexPath を返さない問題への対応。scrollView.contentOffset を使用する
  • [iOS 8] UIAlertView と UIActionSheet が deprecated になった | DevelopersIO

    UIAlertController iOS8 からは UIAlertView, UIActionSheet が deprecated となり、替わりに UIAlertController という新規のクラスを使うことが推奨されました。 これらの違いを一言で説明すると、 ボタンがタップされた時の処理を UIAlertView, UIActionSheet はデリゲートメソッドで実装する UIAlertController はブロックで実装する となっています。 サンプルコード(アラート) 実行時の画面 従来のコードで記述 アラート表示処理 [[[UIAlertView alloc] initWithTitle:@"Title" message:@"Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK

    [iOS 8] UIAlertView と UIActionSheet が deprecated になった | DevelopersIO
    colorless64
    colorless64 2015/03/23
    iOS8 からは UIAlertView, UIActionSheet に代わって UIAlertController を使用する場合の比較。ハンドラをブロックで実装したサンプルとして
  • UIViewControllerからUICollectionViewのDataSourceを分離し肥大化を防ぐ具体例 - Qiita

    ごめんなさい。この記事のように分離しても、CollectionViewを扱う複雑さは解消できないと思うようになり、最近はこのような分離する方法はとらなくなりました。分離しても最初だけスリムで結局肥大化してしまうので何も解消してはないというのが最近の気持ちです。 最近の気持ちは下記のスライドにまとめました。 記事: UICollectionViewDataSourceはViewControllerと別にして実装しないほうが良いと最近思う https://speakerdeck.com/yimajo/uicollectionviewdatasourcehaviewcontrollertobie-nisiteshi-zhuang-sinaihougaliang-itozui-jin-si-u とりあえず ↓の記事はそのままにしています なぜUIViewControllerからDataSource

    UIViewControllerからUICollectionViewのDataSourceを分離し肥大化を防ぐ具体例 - Qiita
    colorless64
    colorless64 2015/03/23
    UIViewControllerからDataSourceの実装を分離するコードのサンプル。UICollectionViewやUITableViewに
  • チーズくんの備忘録 [iOS]edgesForExtendedLayoutとExtend Edgesの対応

    edgesForExtendedLayoutについての説明は次のリンクで書かれている。 外観および動作 - ビューコントローラを使う ただし、インターフェースビルダーでExtend Edgesをチェックしたときどのような変化をするかは書かれていない。 edgesForExtendedLayoutはUIRectEdgeの値を持ちます。 typedef NS_OPTIONS(NSUInteger, UIRectEdge) { UIRectEdgeNone = 0, UIRectEdgeTop = 1 << 0, UIRectEdgeLeft = 1 << 1, UIRectEdgeBottom = 1 << 2, UIRectEdgeRight = 1 << 3, UIRectEdgeAll = UIRectEdgeTop | UIRectEdgeLeft | UIRectEdgeBottom

    colorless64
    colorless64 2015/03/20
    ナビゲーションバー(UINavigationController)の下に潜り込む問題関連
  • iOS7対応の話。 - なるようになるかも

    やはりお前らのiOS7対応は間違っている(變) - Qiita [キータ] ざっくり要約すると、「iOS7向けにアプリを作り直して、iOS6対応するのが真のiOS7対応である」というごもっともなお話。 フラットデザインに合わせてデザイナーに再依頼して、DevPreview版のXCodeと英語リファレンスと格闘する余裕を与えてくれるような時間と予算が振ってくるならそうですよねー、という感じ。 iOS4時代に作成されたそれなりのコード量のあるレガシーなアプリを1から作り直す勢いでリファクタリングさせてくれる環境とか、プライベートな時間を使って新しいiOS SDKの知識をガンガン身に着けてくれるような超人だらけの環境とか、毎年OSのバージョンアップに合わせて再教育してくれるような余裕のある環境なら、正しいのかもしれません。 以下、最近Oracle周りしかやってない人間による記述になります。消費税

    iOS7対応の話。 - なるようになるかも
    colorless64
    colorless64 2015/03/20
    ナビゲーションバー(UINavigationController)の下に潜り込む問題の補足。ViewControllerの管理するView領域の違いなど
  • https://www.objectivec-iphone.com/introduction/block/block.html

    colorless64
    colorless64 2015/03/18
    Block構文。メソッドの引数としてブロックを使用する例など
  • Xcode6&Objective-Cにおけるブロック構文(Blocks記法)の利用方法

    colorless64
    colorless64 2015/03/18
    ブロック構文。Block構文は、iOSにおける非同期処理を実現するための「オペレーションオブジェクト」の基本となる
  • Block構文の基本

    今回はBlock構文(Block Literal Syntax)についてです。最近はデリゲートよりBlockが推奨されてきているので調べてメモしようと思います。 Blockの基構文Blockの基的な使い方をまとめていきます。 宣言、代入、実行// 宣言 void (^blocksTest1)(void); // 代入 blocksTest1 = ^(void) { NSLog(@"blocksTest1"); }; // 実行 blocksTest1(); 宣言は、戻り値(^関数名)(引数) と宣言します。引数voidは()に省略可能です。 代入は、関数名の後ろにイコール(=)を入れ、^(引数){} のように行います。 実行は、関数名() のようにして呼びます。 宣言、代入を同時に行う// 宣言, 代入 void (^blocksTest2)(void) = ^(void) { NSL

    colorless64
    colorless64 2015/03/18
    ブロック構文の説明。これが一番わかりやすいかも。宣言、代入、実行。宣言と代入を同時に行ったり、即実行する書き方も。
  • viva Cocoa / Objective-C 入門

    この章からは、前章で作成したMyClipという、まだ外枠だけのアプリケーションに色々な機能を搭載しながらObjective-Cの言語仕様の学習を進めていきたいと思います。ここでは「搭載」という言葉を使いましたが、プログラミング用語としては「実装」と呼ぶほうが正しいでしょう。しかし「メソッドの実装」との混同を避けるために敢えて搭載と呼ぶことにしました。 さて、書の冒頭でも述べたとおりObjective-Cはいわゆるデザインパターンというものを密接に組み合わせてプログラミングしていくように設計されています。この章では、これらのデザインパターンの中からまずデリゲートの説明をします。そしてこれからの数章にわたり、その他のデザインパターンについても説明をしますが、これらのObjective-Cのデザインパターンに共通して言えることは、「いかにして継承せずにオブジェクトにメソッドを追加するか」という

    colorless64
    colorless64 2015/03/18
    アプリケーションの初期化について。awakeFromNibの使い方
  • COCOAPODS SEARCH

    The iconic font designed for Bootstrap. Contains only the official font files directly from Font Awesome.

    colorless64
    colorless64 2015/03/17
    CocoaPodsで使えるライブラリ一覧
  • やはりお前らのiOS7対応は間違っている(解説編) - Qiita

    クックパッドさんが月イチで行っている第3回potatotips(ポテトチップス)というTips共有会がYahoo!Japanさんで開かれたので参加させてもらい、『やはりお前らのiOS7対応は間違っている』という刺激的&挑戦的なタイトルで発表させてもらいました。 発表時には時間もなかったせいかツッコミがなかったのですが、おそらく公開したらツッコミがあると思うのでいくつかの補足を付けて公開します(発表時の資料はSlideShareに上げてますが、Qiitaのほうが編集リクエストもあるし直しやすいかと思います)。 何を間違っているか 最近、iOS7でUINavigationBarにself.viewが潜り込むという話をよく目にすると思います。この対応方法として「edgesForExtededLayoutプロパティをUIRectEdgeNoneとする(StoryboardではUnder Top B

    やはりお前らのiOS7対応は間違っている(解説編) - Qiita
    colorless64
    colorless64 2015/03/13
    テーブルがナビゲーションバーの下にもぐりこむ問題について
  • 中級者向け iOS デバッグ Tips - jarinosuke blog

    導入 iOS 開発者のみなさん、こんにちは。 このブログでは主にチュートリアルだったりフレームワークの紹介みたいなことを書いてきました。 そこで、たまには中級者向けのエントリを書いて「Xcode バリバリ使って、ビシバシ Objective-C 書いてますよ」アピールします。 iOS 開発をはじめて一通り Framework は理解したけど Xcode 使いこなせてる感が足りない方、夢にまで EXC_BAD_ACCESS が出てくる方に参考になる記事となればと思います。 といっても Xcode はマッシブな IDE なので、4つのデバッグツールに分けて「あれ、それ知らなかった!便利じゃん!」な方法を紹介します。 ブレークポイント デバッグには切っても切れない関係ですね。アプリを実行中に指定した行で処理を中断し、そこからステップ実行で細かいデバッグを可能にしてくれます。 ショートカットキー

    中級者向け iOS デバッグ Tips - jarinosuke blog
    colorless64
    colorless64 2015/03/13
    return値の編集や例外ブレイクポイントについて。クラッシュ再現もできるとのこと
  • 『iOSのバンドルとファイルシステム』 - Object for cutie

    iOSのファイルシステム(サンドボックス)について iOSにはサンドボックス(wiki)という仕組みがあって、 デバイスやiPhoneシミュレータにアプリを初めてインストールした時に、 1つのアプリにつき1つのサンドボックスが作られます。 サンドボックスは安全にデータを保存できる領域で、 他のアプリのサンドボックスにデータを読み書きする事はできません。 ※語源は子供を安全な砂場で遊ばせる事から来ているらしい 【サンドボックスの狙いは?】 1.悪意のあるアプリによって、ファイルを書き換えられる事を防止する。 2.アプリの誤動作でのファイルの破損等をサンドボックス内に抑える 【サンドボックス内にあるファイルは?】 iOSアプリケーションプログラミングガイドからの分かりやすい画像の引用 前述の通り、1つのアプリにつき1つのサンドボックスが作られます。 【ディレクトリ構成】 iOSではホームディレ

    『iOSのバンドルとファイルシステム』 - Object for cutie
    colorless64
    colorless64 2015/03/13
    アプリケーションのリソースにアクセスする仕組みとしてのバンドル(アプリケーションバンドル)について
  • Selection 9: iOSでSQLiteを使う(FMDB)

    SQLiteのライブラリはC言語のライブラリとして提供されています。したがって、SQLiteの各関数の呼び出しや引数の指定方法、パラメータの型はC言語の文法・型に従う必要があります。 特にC言語への型変換に関して、DBの場合は数値(整数、浮動小数点数)、文字列、バイナリ、日付等様々な型があり、Cocoa TouchからC言語への型変換をSQL実行時と結果取得時に行う必要があるため、結構面倒だったりします。 そんなこともあってか、iOSのSQLiteラッパーライブラリとしてFMDBというライブラリがあり、このライブラリはこの面倒な型変換を全て受け持ってくれるため、この点だけでもFMDBを使う魅力は大いにあると思います。(注:後述しますが、FMDBは型変換だけでは無いです) また、FMDBはARC有効/無効どちらにも対応しています。プリプロセッサでARCの有効状態を判定しているみたいですね。

    Selection 9: iOSでSQLiteを使う(FMDB)
    colorless64
    colorless64 2015/03/12
    リソースバンドルを利用してDBファイルをコピー(初期設定)する処理を含む
  • iOSライブラリ管理の神ツール「CocoaPods」のインストールと使い方

    ライブラリ管理ツール「CocoaPods」とは 連載「生産性ガチアゲなオープンソースiOSライブラリ」で紹介してきた通り、iOS向けのライブラリには、さまざまなものがあります。アプリを開発する際に、そのようなさまざまな外部ライブラリを使用して開発することになると、それらのライブラリの管理が大変になってくる場面もあると思います。今までは、GitHubなどから必要なライブラリをダウンロードして、プロジェクトに手作業で追加する必要がありました。 しかし、「CocoaPods」を使うことで、これら一連の作業を簡単な記述とコマンドだけで完了できます。 そこで今回は連載の最終回として、MacアプリやiOSアプリ開発者向けのObjective-Cライブラリ管理ツール「CocoaPods」を紹介します。 CocoaPodsのインストール まずは、CocoaPodsのインストールからです。CocoaPod

    iOSライブラリ管理の神ツール「CocoaPods」のインストールと使い方
  • iPhoneでポップアップをカスタマイズしたい! - ひとりまとめ

    iPhoneでいわゆる普通のポップアップを表示するならUIAlertViewを使えば良いのですが、ポップアップしたviewにいろいろしようと思うとちょっと大変。 そこで見つけたのがMJPopupViewControllerというもの。 martinjuhasz/MJPopupViewController · GitHub 使い方は簡単だったものの、なんか忘れそうなのでメモ。 1:MJPopupViewControllerを追加 zipでダウンロードしたら、Sourceフォルダの中にある4ファイルをプロジェクトに追加します。 MJPopupBackgroundView.h MJPopupBackgroundView.m UIViewController+MJPopupViewController.h UIViewController+MJPopupViewController.m Cocoa

    iPhoneでポップアップをカスタマイズしたい! - ひとりまとめ
    colorless64
    colorless64 2015/03/09
    https://github.com/martinjuhasz/MJPopupViewController / QuartzCore-Frameworkの追加が必要らしい
  • iOSアプリ開発に役立つTips100連発! - Qiita

    1年半ほどコツコツと書きためてきた iOS アプリ開発 / Objective-C 関連の Tips をカテゴリ別にまとめてみました。 数が多いので、オススメのものを太字にしてあります。 (更新情報 2012.8.11)ちゃんと数えてみたら88個しかなかったので、20個ほど追加しました。 (追記 2013.10.1) 記事をきっかけに秀和システム社よりお声がけいただき、書籍を執筆 させていただきました。iOS開発に役立つTips集です。ぜひ下記ページより 目次を見ていただき、興味のある項目がありそうであれば ご購入いただけるととても嬉しいです。 『iOSアプリ開発 達人のレシピ100』というを書きました ライブラリ/フレームワーク ゲームアプリ向け UI コンポーネントセット "UIKitForGame" ゲームアプリをつくる際に便利な UIKit のカテゴリ/サブクラスの詰め合わせラ

    iOSアプリ開発に役立つTips100連発! - Qiita
  • UINavigationBarに背景画像を指定する方法 - 廣川政樹の開発ブログ - Dolice Lab

    Objective-Cでナビゲーションバーに背景画像を指定するサンプルを以下に作成しました。iOSのバージョンを判別し、iOS5.0以上とそれ以外でリソースの取得方法を分けています。 ナビゲーションバーの背景画像の寸法は、縦幅320×横幅44ピクセルで作成しています。サンプルには PSDファイルも入っていますので、お好みのデザインに編集してご使用ください。 サンプルダウンロード https://github.com/masakihirokawa/objc-ui-navigationbar-custom-image ソースコード - (void)initNavigationBar { //ナビゲーションバーを初期化 UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0,

    UINavigationBarに背景画像を指定する方法 - 廣川政樹の開発ブログ - Dolice Lab
    colorless64
    colorless64 2015/03/05
    UINavigationBar に setBackgroundImage: forBarMetrics: で設定する