Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
http://www.objc.io/issue-19/ 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 objc.ioはベルリンのメンバを中心に、月替りでiOS関連技術の特定のテーマに絞って発信しているブログ。もう既に知名度はかなり高いかと思いますが、毎月ものすごく力の入った特集ゆえに、その分ボリュームも相当で、読むのも大変というか、時間がないから読めてない人もいるかと。今月は#19としてデバッグの話題です。 Peter Steinbergerの「デバッグ : ケーススタディ」では、UIKit上のバグをLLDBで対処した話を紹介。 「デバッガーでのダンス - LLDBのワルツ」において、Ari GrantはLLDBの使い方を詳説してくれています。 「DTrace」はiOSシミュレータでしかまだ利用で
Basically you can inspect the entire heap and see all living objects of your iOS app. To be more precise you can record the heap for a specific part of the app. For instance when navigating through the menu. Like in Apple's Instruments the snapshot compares the heap before you started recording. For instance you can start the snapshot before you push a new UIViewController onto your UINavigationCo
Inspect and modify views in the hierarchy. See the properties and ivars on any object. Dynamically modify many properties and ivars. Dynamically call instance and class methods. Observe detailed network request history with timing, headers, and full responses. Add your own simulator keyboard shortcuts. View system log messages (e.g. from NSLog). Access any live object via a scan of the heap. View
お断り 情報が古いです。更新の予定はありません 未だにストックされる方がいらっしゃいますが、古い情報です。ご自身で最新情報を確認してください。 一部はPopperToolsとしてライブラリを公開しています 以下古い内容 iOSアプリの開発にはjavascript/HTML5/CSSやRubyなど様々な言語が利用可能ですが、漢ならやっぱりObjective-Cネイティブでしょ! Objective-CはCの完全上位互換なので、Cで使える技の数々はもちろん利用可能です。 加えて動的にメソッドを追加できるカテゴリや、プロトコルorデリゲートなど便利な機能がたくさんあるので、ガンガン使って行きましょう! 以下私が普段使っているマクロ・カテゴリ・ライブラリをまとめます。 一部過去の投稿を焼き直したものですがどうかご容赦を>< /* デバッグログ用マクロ。 NSLog()の使いすぎは明らかなパフォーマ
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
iOS担当の田中です。 開発をしていると「今どこの処理を通っているのか」「ログ出力の内容が多すぎてよくわからない」など困ることがあります。 そんな時に #define を使ってログ出力コントロールできます。 #define DEBUGLOG 1 #define DEBUGLOG_FILENAME [NSString stringWithFormat:@"File:%s\n", __FILE__] #define DEBUGLOG_LINE [NSString stringWithFormat:@"Line:%d\n", __LINE__] #ifdef DEBUGLOG #define DEBUGLOG_STRING [NSString stringWithFormat:@"%@%@", DEBUGLOG_FILENAME, DEBUGLOG_LINE] #else #define DEB
Revealってなに? iOS用のRuntime inspector。 要はSafariのWeb Inspectorのアプリ版のようなもの。 通常の2D表示だけでなく、3D表示も出来て多段レイヤーの重なり方も表示してくれる超スグレモノ。 Reveal http://revealapp.com/ インストール Revealを起動して、[Help]-[Show Reveal Library in Finder]を選択 [Reveal.framework]のディレクトリをXcodeの任意プロジェクトにドラッグして追加 Xcodeプロジェクト内で[CFNetwork.framework]と[QuartzCore.framework]を追加 XcodeプロジェクトのBuild Settings -> Linking -> Other Linker Flags に「-ObjC」を追加 ※CocoaPo
デバッグ時にビューについての情報(重なりや位置、色など)を解析したくなることがよくあると思います。ビューの階層構造を知るための方法はいくつかありますが、先日見つけたSpark Inspectorがものすごく便利そうなのでご紹介します。 Spark Inspector – Runtime Debugger for iOS Apps Spark InspectorはBonjourとMethod Swizzlingを利用したランタイムデバッガーです。プロジェクトにフレームワークを追加し、起動のためのコードを記述するだけで簡単に利用できます(実際には、これらの作業もアシスタントが自動で行ってくれるので、ほぼボタン一つで利用可能になります)。 できることは大きく分けて二つ。 ビューの状態を2Dまたは3Dで表示する。ビューやレイヤーをリアルタイムで編集する。 通知センター(NSNotification
前回は、例外の発生した場所を特定する方法として、「NSSetUncaughtExceptionHandler」を使った方法を紹介しました。 今回は、Xcodeの機能の「Exception Breakpoint」を使用して、例外の発生した場所を特定してみます。 (前回のブログで頂いたコメントを参考にしました。ありがとうございました。) 環境は、Xcode 4.5 を使用します。 例外を発生させる処理は前回と同じなので省略します。 以下、手順です。 ① Breakpointアイコンのボタンをクリックして、「Breakpoint Navigator」を開きます。(ショートカットは、「⌘」+「6」) ② 「+」ボタンをクリックします。 ③ 「Add Exception Breakpoint...」をクリックします。 ④ 「Done」ボタンをクリックします。 設定はこれで終わりです。 では、実行して
はじめに いろいろと iOS アプリ開発を勉強中の諏訪です。 今回はデバッグ時に特定のブレークポイントを指定した場所で変数の値を変更する方法を調べたのでメモしておきます。 何かの処理中にここの値が変わったら、どう動くかという確認をしたいときに便利です。 デバッグ中に変数の値を変更する 今回は以下のコードで試したいと思います。Button をタップすると Label の text に value を代入するというシンプルなコードです。この value の値をデバッグ中に変更します。 - (IBAction)button:(id)sender { NSString *value = @"Button clicked."; _label.text = value; } 1.ブレークポイントを設定する ブレークポイントを設定するには行番号をクリックします。すると下図のように青色に変わります。 この
第三弾です。 iOS向け Xcode開発Tips初級編 -とりあえず最初にやってること- iOS向け Xcode開発Tips初級編その2 -ちょっと便利なショートカットキー8つ- 今回は、NSLogのちょっとした使い方を。初回でも扱いましたけども、それとはちょっと違う視点で。 1.文字列へ変換して出力 CGRectやCGPointなどなど NSLog(@"%@",NSStringFromCGRect(self.view.frame)); 他にも色々ありますが、詳しくはこちらを UIKit Function Reference クラス名とかも同じ要領で NSLog(@"%@", NSStringFromClass([sender class])); 2.コールスタックを出す。 NSLog(@"%@" , [NSThread callStackSymbols]); ブレイクポイント張ったりすれ
追記: 良い子のみんなはこんなマクロを自分で定義する前にUIKit Function - String ConversionsとかCocoaLumberjackとか使うんだよ!!!!! ログは出したいけどリリースビルド時には出したくないという時に使う各種ログマクロです。 個人的に使っているもののまとめです。(オープンソース見ているといろいろな種類見かけますね) プロジェクトを作るとテンプレで出来る「アプリ名-Prefix.pch」というヘッダに書くとどのソースでも使えるようになるので便利です。 # ifdef DEBUG #define LOG(...) NSLog(__VA_ARGS__) #define LOG_PRINTF(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UT
ちょっとした細かい事なんですけど、設定とかimportとか プロジェクトを跨がって使いそうなやつは最初にうちにやってること多いんですけど、 その辺のネタを少々・・・ 1.NSLogの拡張と、prefix.pch NSLogは、コンソールにその内容を出力してくれるわけですが、 NSLog(@"%s",__PRETTY_FUNCTION__); NSLog(@"%d",__LINE__); とすると、 __PRETTY_FUNCTION__:クラス及び関数名 __LINE__:行数 などを表示してくれます。 ただ、毎回これを記述するのは、 面倒なのでだいたいマクロにしたりしますが、 #define LOG(fmt,...) NSLog((@"%s %d "fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); これをあるヘッダファイルなどに記述
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く