ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフーTechBlog どうも、ヤフーの佐野( @taketo1024 )です。先日引っ越しをしまして、張り切って自分でタンスを運んだりして今とても筋肉痛です。 皆さんは Objective-C からSwift への移行は進んでいますか?弊社ではまだ Obj-C で書かれているプロジェクトは多くあります。世に出ている iOS アプリも多くはまだ Obj-C で作られているんじゃないかと思います。Swift もオープンソース化され、この先その進化のスピードはさらに増してくるはずです。そこでチーム内で開発を進めていた Obj-C →Swift コンバータ を大幅に改良しオープンソースで公開することにしました!この記事ではその導入と活用の方法を説明します

iOSアプリのコーディング規約を考える時はGoogleよりもNYTimesのObjective-Cスタイルガイドを参考にすべき By raimon, 2015-03-21(土), in category IosGoogleのスタイルガイドは古い 複数人でiOSアプリをObjective-Cコードで書いて保守する時、コーディング規約を検討することになる。 参考にすべきスタイルガイドとして良く挙がるものにGoogle Objective-C StyleGuideがあるが、これはいかんせん古い。メモリ管理ARCやNSNumberのリテラル構文など、比較的新しいトピックについても追記されてはいるが、 インスタンス変数のアクセス修飾子 プロパティを使う事が主流となっている2015年現在、余り扱われない autorelease を使ったオブジェクト生成など、MRC時代の規約 何よりホスティング先が
既存記事のまとめのため新しい要素があるわけではないのですが、Appleから発表されたXcode 5が正式にリリースされる前の復習ということで。 Tipsを適用する前のコード #pragma mark - Private Category @interface Sample () @property (strong) NSNumber* i; @property (strong) NSNumber* c; @property (strong) NSNumber* f; @property (strong) NSArray* array; @property (strong) NSDictionary* dictionary; @property (strong) Sample* child; @property (strong)UIColor* color; @property (assi
Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから引用)。 alloc または init すると参照カウントが1になります alloc または init 系メソッドを呼ぶと参照カウントが1になります。 このように書いたのは、クラスの仕様によって alloc メソッドで retainCount が1になるオブジェクトと init 系のメソッドで retainCount が1になるオブジェクトがあるためです。alloc と init はセットで呼ばれることがほとんどなのでこの違いが問題になることはないと思いますが念のため。 int main() { /* allocで参照カウント1 */ NS
iPhone開発で、メモリ管理の基礎を社員に伝えることが増えてきたので、エントリとして書こう。 Objective-C基礎 メモリ管理の前にObjCの基礎として、メソッド呼び出しの話。 クラスのインスタンスaがmethodAをコールするときは、 [a methodA] と書く。このとき、aがnilだったときは、エラーではなく、コールされない。methodAに戻り値があるときは、それは、0やnilやNOが返る。ObjCでは、 void dealloc { if(a!=nil){ [a release]; } [super dealloc]; } は、気持ち悪いので、nilチェックはやめましょう。 なお、ObjCでは、動的にメソッドを差し替えることができ、コールの度にメソッドが存在しているかも確認しています。そのため、LL言語(ライトウェイト言語、スクリプト)のように柔軟な記述が可能です。そし

OS X 10.6 以降の xcode では Objective-C にBlocks というシンタックスが追加されている。BlocksProgrammingTopics: IntroductionPerl でいうところの無名関数(コードブロック)を作ることができる機能で、Perlでいうところの my $f = sub { ... }; $f->(); は void (^f)() = ^{ ... }; f(); のように書ける。書式がきもいのはObjective-Cの定めなのであきらめましょう。 より詳しい書式については上記ドキュメントを見ると良い。 しかしデフォルトではPerlのコードブロックとはレキシカル変数の扱いが異なる。 my $i = 0; my $f = sub { return $i + 1 }; $i++; $f->(); # 2 を返すperlではこのようにレ
2010年04月13日15:11 カテゴリプログラムiPhone アプリ開発者にとっては天敵?! retain と仲良くなる方法。 Objective-C の retain の使いどころをなんとなく体で覚えてきたのでメモ。 自分で作ったクラスがお互いに絡んでくると重要になってくる。 でもちょっと長文。興味の無い人はスルーしてね。 以下は3つのクラスを使ったサンプルコード。 実はこれ、デバッグが非常に難しいバグが混入してる。 @interface A : NSObject { B b; C c; } @end @implementation A -(id)init { self = [super init]; b = [[B alloc] init]; c = [[C alloc] init]; [b setup:c]; return self; } -(void)dealloc { [c
サンプルコード・ライブラリについて追記をいたしました。iPhone向けの開発を始めてみたのですが、とりあえずobjective-cもcocoaも全然分からないので、サンプルコードでも見ながら始めようと思い資料漁ってみました。そのまとめです。 自分のブックマーク用ですので、随時更新していきます。iPhone Dev Centerapple提供の開発リファレンスです。サンプルコードも豊富ですので何か使い方が分からないクラスがあれば、とりあえずリファレンスから検索して、付随のサンプルコードを見てみるのも良いとおもいます。 CS193P -CocoaProgramming | Announcements スタンフォード大学でのiphone開発についての講義の資料です。 Apps Amuck ソースコード付きで毎日アプリを公開してくれているサイトです。iPhone SDK Article
Objective-C入門 この講座は、C 言語(ISO/IEC 9899:1990)を理解していることが前提です Objective-Cとは? インポート クラスの宣言と定義 メソッド 継承 オーバーライド イニシャライザ オブジェクトの解放 静的な型 可視性 クラスメソッド クラス型 セレクタ メソッドのポインタ カテゴリ プロトコル 戻る
Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます
概要 Objective-Cは、Smalltalkを基礎とした非常に動的な言語で、コンパイラはオブジェクト自体について多くの情報を実行時まで決定しない (動的バインディング) 可能な限り多くの決定が、コンパイル時とリンク時ではなく実行時に行われる Objective-CはC言語を拡張したものなので、CocoaのC言語の関数とかも混ぜて使う。 オブジェクト指向プログラミングをサポートするために、(Smalltalkから派生した)構文とセマンティクスにかかわるいくつかの機能が拡張されている ↑Cocoa OPENSTEPを基に開発されているMac OS X向けのフレームワーク(API) Objective-Cはコンパイル時ではなく実行時に決定できる事項が多い。これこそが、同じく動的な特性をフルに活用している、Cocoaフレームワークとベストマッチとなる ↑
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く