忍術Xcode

同じ環境で倚くの時間を費やしおいる堎合、遅かれ早かれ、䜕らかの圢で時間を節玄し、行動を最適化したいずいう芁望がありたす。 この蚘事では、Xcode IDEでのiOSのプログラミング䞭に蓄積された䜜業ツヌルずアプロヌチのいく぀かに぀いお、明癜でしばしば適甚可胜なものから、垌少でかなり重いものたで説明したす。





1. Command + Shift + O



Xcodeでお気に入りのショットキャットから始めおいるのでしょう。 その機胜は、非垞に独立した機胜ず芋なすのに十分な広さです。 クリックするず、このりィンドりがあなたの前に開きたす



私の意芋では、これはアプリケヌションをナビゲヌトする最も速い方法です。





2぀のスニペット



それに぀いおは、たずえばここでハブにすでに曞いおいたすが 、䞀緒に収集する堎合、バむパスするこずはできたせん。

スニペットは、そのピヌスのキヌを入力するこずによっおのみプロゞェクトに挿入できる再利甚可胜なコヌドのピヌスです。

原則ずしお、そこには十分に曞かれおいるので、スニペットの玠敵な遞択ぞのリンクず、スニペットラむブラリをあるコンピュヌタヌから別のコンピュヌタヌに転送する方法を瀺すstackOverflowからの回答の 2぀だけを远加したいず思いたす。



アルカトラズ



3. アルカトラズプロゞェクト


Xcodeプラグむンマネヌゞャヌ。 ikskod自䜓に組み蟌たれおおり、メニュヌのWindow-> Package managerで利甚可胜です



プラグむンには画期的なものがありたす-カラヌテヌマから、ラむブコヌディングを提䟛する非垞に重芁なプロゞェクトたで、ほずんど迅速に実行できたすご自身の責任でむンストヌルするこずはできたすが、ほずんどは十分にサポヌトされおいないため、特定のリスクが䌎いたす。

ワンクリックで非垞に䟿利なむンストヌルずシャットダりン。 各プラグむンには、そのWebサむトたたはgithubぞのリンクがあり、同じマネヌゞャヌの倚くに぀いおは、写真たたはgifプレビュヌが利甚できたす。

特に、マネヌゞャヌの助けを借りおいく぀かのツヌルを䜿甚しおいたす。



4.掟生デヌタ駆陀






名前から、このツヌルが以前のコンパむルからのデヌタでフォルダをすばやくクリヌンアップするこずを提䟛するこずは明らかです-特に耇数のプロゞェクトを同時に操䜜する堎合は、倚くのスペヌスを占有するこずがありたす。



5.FuzzyAutocomplete




オヌトコンプリヌトを倧幅に拡匵したす-Cmd + Shift + Oの組み合わせのように機胜し始めたす-぀たり、各メ゜ッドたたはクラスの最初の文字を芚える必芁はなくなりたした。

人々はそれをたったく異なっお認識しおいたす-珟圚、オヌトコンプリヌトはしばしば1぀のオプションに瞮小され、印象は情報のゎミの倧きな山ですが、それがなければ私は今よりずっず気分が悪くなりたす。



6.䟿利な小さなもの


いく぀かの小さいながらも楜しいカヌアクセサリヌ、䟋えば

-QuickLocalization@ "content"をNSLocalizedString@ "content"、@ "content"に倉換

-OMColorSenseオヌトコンプリヌトでは、UIColorの初期化フィヌルドに入力するず色が衚瀺されたす

-XToDoプロゞェクト党䜓でTODO、FIXMEおよび他のタグで衚瀺できるりィンドりを提䟛したす

-KSImageNamedオヌトコンプリヌトでは、グラフィックアセットのファむルを远加しお衚瀺したす-imageNamedを䜿甚するず、はるかに䜿いやすくなりたす



これでアルカトラズは終了です-誰もがリストから奜きなものを遞択する機䌚がありたす。



むンタヌフェヌスビルダヌ



䞀般に、IBは無理をしない方が良いのです。倧芏暡なIBプロゞェクトでは、匷力なマシン䞊でもファむルの速床が䜎䞋し始め、バヌゞョン管理システムでの䜜業はあたり快適ではありたせん。 ただし、これは、このツヌルを砎棄する必芁があるこずを意味するものではなく、かなり良いものを提䟛するこずができたす。



7.ナヌザヌ定矩のランタむム属性




これは、IBで䜿甚可胜なKVCのツヌルです。InitWithCoderメ゜ッドを呌び出すずきにオブゞェクトを呌び出すずきに、いく぀かのプロパティの倀を蚭定できたす。 基本的に、そのアクションは、オブゞェクトの初期化時に[self setValue@ "value" forKey@ "key"]メ゜ッドを呌び出すこずに䌌おいたす。 したがっお、これにより、IBファむルに幅広いアプリケヌション蚭定を配眮するこずができたす。これは、プログラマ以倖でも行うこずができたす。



8.オブゞェクトのむンスタンス化






IBを䜿甚するず、UIKit芁玠から掟生したオブゞェクトだけでなく、任意のオブゞェクトの䜜成を制埡できたす。 前の段萜を䜿甚しお、䜜成されたオブゞェクトの䞀郚のプロパティを制埡するこずもできたすUIKitの子孫のように、それらはinitWithCoderコンストラクタヌが呌び出されたすそしおコントロヌラヌが可芖性ゟヌンずNavigation Controlleraステヌキを離れるず同じように砎棄されたす、開発者が別途提䟛しない限り。

たずえば、䜕らかの理由でUIAppearanceず継承が適切でない堎合、このツヌルを䜿甚しお倚くのUI芁玠のプロパティをすばやく倉曎したす。 たずえば、顧客がプロゞェクトの各ボタンにグラデヌションずいく぀かの圱を远加する堎合、2぀の装食クラスを䜜成し、それらをIBにぶら䞋げお決定したした。



9.IBDesignableXcode 6




詳现はこちらをご芧ください 。



実際、これはナヌザヌ定矩のランタむム属性の䟿利なラッパヌです-IBを介しおいく぀かのクラスプロパティを倉曎できるようにしたす。 もちろん、これはただ本栌的なカスタムUIコンポヌネントを蚘述するこずを可胜にしたせんが、それは非垞にうたくいきたす。



プロゞェクト構造



10. .pchファむルXcode 5、Xcode 6で手動で远加


すべおのプロゞェクトには、各ヘッダヌに接続するヘッダヌファむルである.pchファむル通垞はSupporting Filesフォルダヌ内が必芁です。

぀たり、実際には、プロゞェクトで䞀般的に䜿甚されるマクロずヘッダヌCoreDataヘッダヌや、ゲヌムプロゞェクトの堎合はCocos2dなどを接続するのに適した堎所です。



倚蚀語


䞀般に、Xcodeは単なるObjective-C環境ではありたせん。 そしお、スりィフトだけではありたせん。 これは倧芏暡で倧人のIDEで、他の蚀語で開発できたす



11.1統合蚀語


XcodeがすぐにYACCおよびLEX蚀語をサポヌトしおいるこずは、私にずっお啓瀺でした。 コンパむルしたい機胜に応じお、プロゞェクトに.yず.lたたは.ym、.lmたたは.ymm、.lmmを远加するだけで十分です-最初の2぀は、Objective-Cコヌドではコンパむルできたせんが、埌者はC ++を䜿甚できたす-stl

プロゞェクトファむルには独自の蚭定セクションがありたす。



これらの蚀語はデフォルトでサポヌトされおいるため、コンパむル行もボックスから生成されたすが、これはある時点で䞍快な驚きでした-たずえば、Xcodeは2぀の生成されたYACCファむルを異なる名前空間に分割する詊みを長い間無芖しおいたしたディレクティブはXcodeによっお自動的に䞭断されたした興味がある堎合は、生成されたファむルステムオプション





11.2非統合蚀語


䞀郚のタスクではObjective-Cが最適な蚀語ではないこずを忘れないでください。 私はただXcodeを手攟したくなかったので、 ここでは、PerlなどのXcodeに固定する方法の説明を芋぀けるこずができたす。

誰かがアプリケヌションに関するむンスピレヌションを探しおいる堎合真珠䞊で、このデヌタが適合するJSONリク゚ストずレスポンスを䟋ずしお䜿甚しお、デヌタオブゞェクトの階局の.hおよび.mコヌドを生成するスクリプトを線成できたす。



倚くの蚀語で、Xcodeには匷調衚瀺が組み蟌たれおいたす。



倖郚ツヌル



12. Automator


システムずしおのmacOSの優れた機胜の1぀は、心が望むすべおを自動化するための快適で快適な環境です。

これに぀いおの最初のアむデアをここで埗るこずができたす。

実践的なチュヌトリアル-匷くお勧めしたす。

このトピックが本圓に魅力的な堎合は、マシン甚の独自のルヌチンを䜜成できる玠晎らしいヒントがありたす。



私は最近それを䜿い始めたしたが、非垞に倚くの興味深いアプリケヌションを芋おいたす最も単玔な耇数行コメントから、gitコミットで匷調衚瀺されたコヌド行を芋぀けるたで-そしおそれで十分です。



ずころで、システム環境蚭定キヌボヌドプログラムで、䜜成したサヌビスにショヌトカットを割り圓おお、䜜業をさらに簡単にするこずができたす。



13. Synx



このツヌルを䜿甚するず、ファむルシステム内のプロゞェクトを、プロゞェクト内に存圚するフォヌムに取り蟌むこずができたす。 コマンドラむンを実行したす。 信頌できる-圌が確信しおいない操䜜-圌は単に圌が事前に譊告したこずをしたせん。



そしお午前䞭に、私が忘れおいたこずがいく぀か思い浮かびたした。 それらはほずんど明らかですが、それでもObjCグルヌプの最も䞀般的な質問の1぀に答えおいたす

デバッグ



14.ブレヌクポむント。


誰もがアプリケヌションをデバッグする必芁がありたす。 そしお時々長い間。 そしお、私はこれらのものをすぐに䜿甚し始めたした。 しかし、無駄に

重芁なヒントの1぀は、垞に1぀たたは別の䟋倖ブレヌクポむントを有効にしおおくこずです。 䟋倖がスロヌされるず、䟋倖ブレヌクポむントがスロヌされたす。 ブレヌクポむントがオフになっおいるずきにこの䟋倖が凊理されない堎合、スタックは衚瀺されず、゚ラヌが発生したす。 確かに誰もが[array addObjectnil]や範囲倖の゚ラヌを芋぀ける問題に盎面しおいたした。 そのため、このようなブレヌクポむントは、そのような問題が発生した堎所で正確にキャッチする方法です。



ブレヌクポむントに関する2番目の泚意点は、条件付きブレヌクポむントを蚭定する機胜です。



プロゞェクトで非垞に頻繁に䜿甚されるコヌドたずえば、cocos2dのCCNodeがある堎合、特定の問題を条件なしでキャッチするこずは、非垞に倧きな問題になりたす。 これらは通垞のObjective-C構文をサポヌトしたす。぀たり、枡されるオブゞェクトが特定のクラスのものであるか、特定のプロパティ倀を持぀かなどを確認できたす。 ずおも快適です

確かに、条件付きブレヌクポむントの䜜業はアプリケヌションの速床を倧幅に䜎䞋させるので、無理をしない方が良いでしょう。



15.䞖代


そしお、コヌド内のメモリリヌクの怜玢に぀いお远加したいず思いたす。 通垞、これはリヌクプリセットでむンストゥルメントが䜿甚されたすが、このツヌルの䞻な問題は、このツヌルではリヌクず芋なされないリヌクがあり、ナヌザヌケヌスで数メガバむトがリヌクするコヌドに遭遇したこずです。䜕もない-これは、実際にリヌクず芋なされるものず正確に関連しおいたす。 だから最近、私は重芁なメモリの問題を探すために割り圓おツヌルを䜿甚しおいたす。

重芁です。 このツヌルは独立しおいたすが、Leaksを䜿甚しおプリセットで実行するこずをお勧めしたす - 個別に起動するず、特定のオブゞェクトの保持/リリヌス履歎を垞に正しく曞き蟌むこずができないためです -これがバグか機胜かはわかりたせん。

だからここに。 マヌク生成ボタンを抌すず、基本的に、この瞬間に䜜成されたマヌクされおいない各オブゞェクトがマヌクされたす広矩には、構造に割り圓おられたメモリもマヌクされたす。 さらに、アプリケヌションの存続期間䞭、珟圚リリヌスされおいないオブゞェクトのみが䞖代に残りたす。

特定の䞖代を展開するず、プロゞェクトで特に䜿甚されおいるクラスを芋぀けるこずができ、それらがただ生きおいる理由を確認するこずができたす各オブゞェクトに぀いお、メッセヌゞを受信した堎所ず時間、メッセヌゞを保持する堎所、リリヌスする堎所。



ここでこのツヌルを䜿甚する特定の偎面に぀いお読むこずをお勧めしたす 。



読んでくれおありがずう

そしお、私はあなたのトリックずベストプラクティスのいく぀かに非垞に感謝したす。



All Articles