タグ

Objective-Cに関するabetomotomoのブックマーク (27)

  • Objective-C→Swiftでどう書き換えたらいいの?をまとめてみた - Tech Blog

    初めまして、iOSエンジニアのすーです!4月からTimers Inc.で働き始めました。 社内では最年少です。笑 現在Fammでは、新規開発を行いつつ、Objective-Cで書かれたコードを少しずつSwift化するのを行っています。 既に、新規でコードを書く時はSwiftで書くように心がけ、暇がある時に慎重にObjective-Cで書いたコードを書き換えています。 そんなときに、「Objective-Cでこう書いてあったのをSwiftで書く時どうしたらいいの?」っていうケースに幾つか遭遇し、それを社内wikiにまとめたら、 「これTech blogに投稿できるんじゃね?」ってなったので、改めて内容を整理しつつ、公開することにしました! SwiftからObjective-Cに徐々に移行していくときに遭遇しそうな内容をピックアップしています。 まだまだ私達もObjective-CからSwif

    Objective-C→Swiftでどう書き換えたらいいの?をまとめてみた - Tech Blog
  • [iOS]Navigation ControllerでNavigation Barを表示しない

    Navigation Barを表示しない Navigation Controllerを用いて図のような画面構成にしたとき。 右側のUtilitiesでShows Navigation Barのチェックを外す これで、Navigation Barを表示しなくなる。 View Controller単位でNavigation Barを表示しないようにするには? こちらのページのやり方がよさげ。 NavigationBar を画面によって、表示・非表示にするメモ – なんとなく - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:YES]; } - (void)viewWillDi

    [iOS]Navigation ControllerでNavigation Barを表示しない
  • Objective-Cが好きになるTips & Hackを勝手に補足 - yashiganiの英傑になるまで死ねない日記

    TLで見かけたこのスライド,いいところをついていてちょっとObjective-Cをやったことのある人が,もっと興味を持つきっかけを作るにはすごく良いスライドだと思った. Objective-C が好きになる Tips & Hack from Taketo Sano けど,内容を見た感じ初学者を対象としているわりに,ここで取り上げられているTipsやHackの負の側面に対するフォローが無い. 一応「やるかやらないかはあなた次第」とあるが,なぜというところが抜けているので初学者には判断できないと思う. 特に紹介されている例はあまり行儀の良い方針では無いように感じたので,これを初学者がそっくりそのまま真似をするのはあまりよろしくない. 反響も結構あるようで気になったので,勝手にこのTipsやHackの負の側面(行儀の良くない面)について補足をしておく. カテゴリメソッドの命名について このスライ

    Objective-Cが好きになるTips & Hackを勝手に補足 - yashiganiの英傑になるまで死ねない日記
  • Storyboardで画面遷移を作る (iOS)

    Xcode4.2からStoryboadというものが使えるようになりました。いままで画面ごとにnibファイルを作ってプログラムで画面遷移することができましたが、Storyboardを使えば各画面の関係を1画面で見渡すことができます。また、単純な画面遷移ならプログラムを一切書かずに作ることができます。 最も簡単な画面遷移 ボタンを押したら次の画面に移動するだけの簡単な画面遷移を作ってみます。 まずはプロジェクトの作成から。 File –> New –> New Project でSingle View Applicationを選択します。 新規プロジェクトプロジェクト名などを入力する画面で「Use Storyboard」のチェックを入れて、プロジェクトを作成します。 次に、Navigation Controllerを追加します。 Navigation Controllerをドラッグしてキャン

    Storyboardで画面遷移を作る (iOS)
    abetomotomo
    abetomotomo 2013/05/31
    Storyboard
  • Objective-C のコードレビューチェックリスト - Qiita

    はじめに 稿は Juri Pakaste 氏による Cocoa review checklist (commit fff5703)の翻訳です。他人の Objective-C のコードをレビューするとき注意する点、また普段のコーディングで心がけるべき点についてまとめられています。 なお、原文のタイトルは Cocoa review checklist となっていますが、内容が Cocoa に限らない範囲のトピックをカバーしているため、稿のタイトルは「Objective-C の〜」としました。 誤訳の指摘や例の補足を歓迎します。 コードの見た目とコード以外の問題 不要な #import や @class 宣言を消す #import をソートする .m ファイルの中では、対応する .h ファイルの #import を最初の行に書く。空行をはさんで、ソートされた他の #import を書く。 X

    Objective-C のコードレビューチェックリスト - Qiita
  • Google Objective-Cスタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • NSDateとNSDateComponentsの相互変換

    NSDateとNSDateComponentsの相互変換は、以前にも書いたNSCalendarクラスを使って行います。 NSDate→NSDateComponents変換はNSCalendarクラスのcomponentsメソッド。 NSDateComponents→NSDate変換はdateFromComponentsメソッドを使います。 // NSDateComponentsのインスタンス生成 NSDateComponents* cmp = [[NSDateComponents alloc] init]; // NSDateComponentsに日付を設定 [cmp setYear:2010]; [cmp setMonth:05]; [cmp setDay:01]; // NSCalendarのインスタンス生成 NSCalendar* cal = [NSCalendar currentC

  • Objective-C 基本(1) - ぐぅたらな活動

    こんにちは。 Objective-Cでまとめておかないと忘れてしまうので、いつでも見れるようにまとめておきます。 参考資料を元にして書かせていただいているところが多々あります。 ■オブジェクト指向 手続き型のプログラミング言語による開発では、ソフトウェアが大規模になるにつれ、機能の再利用、追加、拡張に課題があることが認識されてきました。 C言語のプログラムでは、プログラムで使われる変数の数が増えるにつれて、プログラム自体が複雑で見通しが悪くなる傾向があります。これに対し、機能を中心とした考え方から、オブジェクトを中心とした考え方が注目されるようになります。 オブジェクトとして認識できる単位に属性を持たせ、オブジェクト間でメッセージの交換を行うことにより、オブジェクトを振る舞わせるという考え方です。各々のオブジェクトは、自分自身の属性と振る舞いに注意を払えばよく、ソフトウェアが大規模になった

  • iPhone SDK NSSet型のデータは直接ソートできないので、遠回りな方法でソートする - Siesta Design Blog

    ※ 下記ソースの簡単な説明として、CoreDataから1つのteamDataを取得し、それに紐付くNSSet型のmembersのデータ(Member *)を、複数の条件で並び替えすることを想定している。 // CoreDataのリレーションで関係づけられたデータは、NSSet型で保存される. NSSet *members = teamData.members; // ソートする条件を指定。 NSSortDescriptor *sort1 = [NSSortDescriptor sortDescriptorWithKey:@"memberNo" ascending:YES] ; NSSortDescriptor *sort2 = [NSSortDescriptor sortDescriptorWithKey:@"activeFlag" ascending:NO] ; // ソートする条件を配

    abetomotomo
    abetomotomo 2012/03/16
    ソート
  • はてなブログ | 無料ブログを作成しよう

    わたし的棚ぼた一万円選書 急に千葉さんに手渡された封筒、開けてみたら1万円札が1枚。何ごとかと思えば、同期の出張を代わったお礼をもらったらしい。 「葵はワンオペで育児してくれたから」と半分わけてくれました。 泡銭の1万円 これはもう、わたし的1万円選書をしろという思し召しなのでは……

    はてなブログ | 無料ブログを作成しよう
    abetomotomo
    abetomotomo 2012/03/16
    ソート
  • Objective-C の Private / Protected Method: 雲か霧のようになくなってまうブログ

    そもそも Objective - C には、他の Object 指向言語のような private/protected メソッドの機構が無いらしい。 1)Private Method ただ、Private メソッドをシュミレーションする方法として、次のようなやり方がある。 Objective-C の実装ファイル(*.m)内に、 @interface MyClass(Private) -(void) privateMethod; @end @implementation MyClass(Private) -(void) privateMethod { NSLog(@"AAA"); } @end という様に、クラスの @interface 定義をもう一回してしまう。 これで、MyClass の 実装部分から MyClass(Private)のメソッドにアクセス可能。 また、当然 MyClass

    abetomotomo
    abetomotomo 2012/03/16
    protectedMethod
  • 無為空間 |NSMutableArrayから任意の要素を削除するには

    無為空間 むいむい(´ω`*) Entries NSMutableArrayから任意の要素を削除するには タグ: Objective-C NSMutableArray等のコンテナ内の要素を走査するには、通常NSEnumeratorか高速列挙を使う。 これらはとても便利な仕組みだが、走査中はコンテナに変更を加えられないため、「走査しながら不要な要素を見つけて除外する」ことができない。 for(NSNumber* number in array) { if([number intValue] % 3 == 0) { [array removeObject:number]; // ここで除外すると壊れる!(゜∀。) } } このようなことをしたい場合、どうするのが良いか。 方法はいくつかある。 一つは、高速列挙を使わない方法。 NSMutableArray* test_1(NSMutableAr

  • Java脳でもわかるObjective-C入門

    ちょいAndroidTypescriptいいよ。JenkinsとかGradleとか。APTもいいなー。 photo: Some rights reserved by yukiv Javaと比較しながら「へぇーObjective-Cってそういう感じか」と理解した気になろう。 流れ 軽くジャブ クラスファイルの構成 コメント import文 変数の定義 クラス定義 メソッドの定義 メッセージ式 プロパティ セレクタ プロトコル カテゴリ 文字列リテラル ログ出力 ひと通り使ってみる感じのソース まとめ 軽くジャブ まずは以下のソースを眺める //SampleClass.h #import <Foundation/Foundation.h> #import "SampleClassDelegate.h" @interface SampleClass : NSObject <sampleclas

    Java脳でもわかるObjective-C入門
  • 【4/20追記】 一つの画面で複数のUIAlertViewを制御するときに…… - 自堕落なぺぇじ

    UIAlertViewを、状況ごとにいくつか出したいと思ったときに 参考書では特に触れられていないことが多いので、少し書いておきます。 簡単に書けば、こういうこと。 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if(alertView1 == alertView){ } else if (alertView2 == alertView){ ... } }ヘッダファイルで、メンバ変数としてalertViewのオブジェクトを宣言しておいて Delegateのイベント内で一致の判定を行うだけ。 ※追記 メンバ変数として定義していなくても、以下のような方法を取れば UIAlertViewを判別することが可能です。 この記事の応用になりますが、 http://d.ha

    【4/20追記】 一つの画面で複数のUIAlertViewを制御するときに…… - 自堕落なぺぇじ
    abetomotomo
    abetomotomo 2012/03/03
    複数の AlertView
  • UIAlertView - iPhoneアプリ開発の虎の巻

    abetomotomo
    abetomotomo 2012/03/03
    UIAlertView
  • ダイナミックObjective-C(102) プロパティ(2) - プロパティの宣言

    プロパティの話を続けよう。今回は、プロパティを宣言するための文法を調べてみる。 プロパティの目的 まず、プロパティの目的を明確にしておこう。プロパティとは、「クラスにアクセッサメソッドを簡単に付加する」ために導入されたものだ。 以前であれば、クラスが持つインスタンス変数に安全にアクセスさせるには、アクセッサメソッドを手動で追加する必要があった。これを自動化してやろう、というのがプロパティの目的だ。 ここで注意しておきたいのは、プロパティを使うとそのアクセスではメソッド呼び出しが発生する、というところだろう。前回、Objective-Cではほぼ自由にインスタンス変数にアクセスできるということを紹介した。プロパティではこれらの手段は使わずに、適切なメソッドを提供することになる。 この手法の利点は、安全であるということだ。とくにObjective-C特有の、retainやreleaseを伴ったオ

    ダイナミックObjective-C(102) プロパティ(2) - プロパティの宣言
    abetomotomo
    abetomotomo 2012/03/03
    プロパティ
  • Objective-Cの @property と @synthesize の組み合わせが何をやっているのかを解説 - 強火で進め

    改めて説明するまでも無いかと思ってたけど意外と知らない人は知らないみたいので解説を書いておきます。 @property と @synthesize の組み合わせは端的に言うと「setterとgetter(アクセッサメソッド)をコンパイルの前に生成させる」以上。 ※Objective-Cの場合、 @ で始まるものはプログラムでは無く、コンパイラへの指示となります。この様な指示をObjective-Cではコンパイラディレクティブ(Compiler directive)と呼びます。 詳細説明 setterやgetterはメンバ変数を直接扱わずにメソッド経由で代入やデータの取得をする為に定義するメソッドです。setterがデータを代入する時のメソッド、getterがデータを取得する時のメソッドとなります。 メンバ変数をメソッド経由にすることにより代入前にチェックを行って有効な値のときのみメンバ変数

    abetomotomo
    abetomotomo 2012/03/03
    プロパティ
  • Objective-Cでのプロパティ宣言と実装 « TORQUES LABS

    iPhoneアプリを開発していて、Objective-Cを普通に使っているのですが、慣れないコードを書こうとすると、作業が止まってしまうことが多い。 これは細かいところの言語仕様を完全に把握しているわけではないのが原因で、1日くらいiPhone SDK抜きでObjective-Cでいろいろクラスを書いてみて仕様をしっかり覚えればいい、というのは頭では分かっているのですが他の仕事でいろいろな言語を渡り歩いているのもあり、なかなか一度しっかりと勉強する時間が取れない。 で、そんな自分の為にすぐにコピペできるようにコードのメモです。 プロパティの書き方 というわけで、Objective-Cでのプロパティの書き方メモ。 // Hoge.h @interface Hoge: NSObject{ // 以下のように内部変数を作っておく。 int testInt; int testInt2; NSStr

    abetomotomo
    abetomotomo 2012/03/03
    プロパティ
  • iOS で XML をパースする

    iOS で使える XML パーサーは色々あります。 iOS 標準で使えるものは以下の2点 Cocoa Touch フレームワークで提供されている NSXMLParser C言語のライブラリである libxml2 を直接利用 外部のライブラリでは主に以下のようなものがあります。 GDataXML KissXML TBXML XML パーサーの中でも SAX と呼ばれる少し扱いにくいが比較的高速で省メモリなもの。DOM と呼ばれる扱いやすいがメモリを多く消費しやすいものがあります。 今回は Cocoa Touch フレームワークで提供されている NSXMLParser の使い方を紹介します。 NSXMLParser は SAX タイプのパーサーで C言語のライブラリである libxml2 をラップしたクラスになります。XML パースのおおまかな流れは、インスタンスを初期化 → デリゲートを設定

    iOS で XML をパースする
    abetomotomo
    abetomotomo 2012/03/02
    xmlパース
  • XMLを解析したい - ちくわプログラマにっき

    iPhoneで利用できるXMLパーサにはいくつかありますが今回はiPhoneSDKに標準添付されているNSXMLParserを利用します。 ちなみに、NSXMLParser以外のXMLパーサには以下のようなものがあります。NSXMLParserはSAXベースのパーサなのに対し、TouchXMLやKissXMLはDOMベースのパーサとなります。SAXベースのXML解析はDOMベースと比較すると簡単とは言い難いので、よほど大きなXMLデータをあつかったりしない限りはこれらDOMベースのパーサを利用するのがいいかも。 TouchXML http://code.google.com/p/touchcode/ KissXML http://code.google.com/p/kissxml/ NSMLParserでXMLを解析する手順は以下の通りです。 XMLデータを用意する まずはXMLデータを用

    XMLを解析したい - ちくわプログラマにっき
    abetomotomo
    abetomotomo 2012/03/02
    xmlパース