タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

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

  • 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

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 稿は Juri Pakaste 氏による Cocoa review checklist (commit fff5703)の翻訳です。他人の Objective-C のコードをレビューするとき注意する点、また普段のコーディングで心がけるべき点についてまとめられています。 なお、原文のタイトルは Cocoa review checklist となっていますが、内容が Cocoa に限らない範囲のトピックをカバーしているため、稿のタイトルは「Objective-C の〜」としました。 誤訳の指摘や例の補足を歓迎します。 コードレ

    Objective-C のコードレビューチェックリスト - Qiita
  • 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
    ソート
  • はてなブログ | 無料ブログを作成しよう

    日記_2024.8.29 鞍馬と貴船 29日は鞍馬と貴船に行ってきました。こんな天気でバイクは無理、でも引きこもるのも嫌なので前々から行きたかった鞍馬と貴船に行くことにしました。ただ、いつ大雨が降っても全くおかしくないので天気がヤバそうなら帰ることにします。普通に日帰りできる距離ですから…

    はてなブログ | 無料ブログを作成しよう
    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

  • 【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
  • ダイナミック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がデータを取得する時のメソッドとなります。 メンバ変数をメソッド経由にすることにより代入前にチェックを行って有効な値のときのみメンバ変数

    Objective-Cの @property と @synthesize の組み合わせが何をやっているのかを解説 - 強火で進め
    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パース
  • Objective-C + Cocoaにおけるメモリ管理について

    #import <foundation /foundation.h> #import "MyObject.h" int main (int argc, const char * argv[]) { // (4) NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; // (5) MyObject* object1; object1 = [[MyObject alloc] init]; [object1 release]; // (6) MyObject* object2; object2 = [[[MyObject alloc] init] autorelease]; // (7) NSString* string0; string0 = [NSString stringWithCString:"new string"

  • メモリ管理を理解する(前編)

    クラスのインスタンス変数の所有権 あるクラスが、インスタンス変数として別のクラスのインスタンスを保持する場合があります。このときにも、オブジェクトの所有権について考慮しておく必要があります。 インスタンス変数という「容れ物」にオブジェクトを保存するとき、これが勝手に消えてしまわないように所有権を確保しておくのです。 第3回「Objective-Cのクラス定義を理解しよう」で触れたように、クラスのインスタンス変数にはアクセサというメソッドを通してアクセスします。 インスタンス変数に何らかのオブジェクトをセットするアクセサはセッターメソッドと呼ばれます。オブジェクトの所有権は、このセッターメソッドで確保すればよいことになります。 次のサンプルを見てみましょう。 01 #import <Foundation/Foundation.h> 02 03 @interface MyClass : NSO

    メモリ管理を理解する(前編)
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

  • releaseの使いどころ : As Sloth As Possible

    俺もメモリ管理を間違えて頻繁にアプリを落としてしまうゆとりプログラマなのであんまり偉そうなことも言えないのだけど、「releaseの使いどころ。メモリの辺りがどうしてもわからない。」を読んでいくつか思ったところがあるので書いときます。 「何度もinit」はしない 既に確保されているハズの変数を二度initするのはメモリリークだよね? 解放されている変数は、 if (obj == nil) では判別できないのだろうか。 ボタン押下時などに、同じロジックを走ることが多くて、何度もinitをしてしまうことが多いのだが。。。。 具体的なコードを見てないので間違ってるかもだけど、多分これ「何度もinitしちゃう」じゃなくて「開放してないオブジェクトを参照してる変数に、何度も新しいオブジェクトをつっこんじゃう」ってことだと思って話を進める(そうすると、どこからも参照が辿れないのにメモリが開放されてない

    releaseの使いどころ : As Sloth As Possible
    abetomotomo
    abetomotomo 2012/03/02
    メモリ 開放
  • URLエンコード・デコード&HTMLエスケープ・アンエスケープ | らいふログ

    #import <Foundation/Foundation.h> @interface NSString (Escape) - (NSString *)urlEncode; - (NSString *)urlDecode; - (NSString *)escapeHtml; - (NSString *)unescapeHtml; @end #import "NSString+Escape.h" @implementation NSString (Escape) - (NSString *)escapeHtml { NSMutableString *string = [[self mutableCopy] autorelease]; [string replaceOccurrencesOfString:@"&" withString:@"&" options:NSLiteralSearch

  • はっそうし objective-c