欣賞于React Native和Android的實(shí)時(shí)界面展示拉鹃,想著iOS是否也能不需要每次Cmd+R煌贴,重新運(yùn)行對(duì)于深度界面的調(diào)試顯得尤為不方便,最近有幸看到Injection:iOS熱重載背后的黑魔法 ? 一文,而對(duì)其實(shí)踐的結(jié)果遭顶,雖然對(duì)于某些場(chǎng)景仍然有所限制侧啼,但對(duì)于UI的簡(jiǎn)單調(diào)試則變得簡(jiǎn)單很多牛柒。廢話不多說,先讓我們配置好相應(yīng)需求:
1.首先需要安裝我們所必須的軟件Injectionlll痊乾,在這里需要知道該軟件的熱重載是能在模擬器實(shí)現(xiàn)皮壁, 真機(jī)是無法實(shí)現(xiàn)的
2.打開Xcode建立新工程,? 然后Open Project ->選擇對(duì)應(yīng)的工程路徑, 在AppDelegate.m中根據(jù)所需平臺(tái)配置工程
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#if DEBUG
??? //??? for iOS
??? [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
//??? //??? for tvOS
//??? [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle"] load];
//??? //??? for masOS
//??? [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle"] load];
#endif
??? return YES;
}
3.在任意繼承自O(shè)C的類中加入如下代碼,然后Cmd+S即可重繪UI
- (void)injected{?? NSLog(@"reloadUI");? }