iOS OC純程式碼企業級專案實戰之我的雲音樂(持續更新))
簡介
這是一個使用OC語言,從0使用純程式碼方式開發一個iOS平臺,接近企業級商業級的專案(我的雲音樂),課程包含了基礎內容,高階內容,專案封裝,專案重構等知識;主要是講解如何使用系統功能,流行的第三方框架,第三方服務,完成接近企業級商業級專案,目的是讓大家,學到真正的企業級商業級專案開發技術。
效果圖
安裝環境和建立專案
就是使用Xcode,文件裡面就不寫了。
如何移出SceneDelegate
為什麼要移出
- 有SceneDelgate不能相容低於iOS 13以下版本,而企業級專案,例如:目前的微信,QQ,抖音,大部分都是相容到iOS 10,11,甚至有些相容到9,所以需要學習如果移出,改為舊版本結構。
- 同時目前公司裡面,如果是舊專案,那肯定也就沒有SceneDelgate。
- 有些第三方專案,不相容有SceneDelgate的專案結構。
移出有什麼影響
SceneDelgate是在開發iPad分屏應用是才有實際功能,而我們課程講解的是通用功能開發,所以沒影響。
如何移出
只需要刪除相關檔案,也就是不使用SceneDelegate;方法如下:
- 將AppDelegate中Scene生命週期方法刪除,並把window屬性從SceneDelegate拷貝過來。
- 將SceneDelegate檔案刪除。
- 在info.plist檔案中,將Application Scene Manifest
然後重新編譯專案就行了;跳轉介面就是獲取到AppDelegate跳轉;移除後相容的最低版本就可以更改為低於13了,在選中專案->選中Project->Deployment Target。
跳轉邏輯
MyCloudMusicStoryboardRemoveSceneDelegate
例如:啟動介面跳轉邏輯:
[AppDelegate.shared toLoginHome];
實現啟動介面佈局和功能
佈局
使用前面講解的MyLayout框架實現,其實前面已經實現過了。
顯示年
年份可以寫死,也可以動態獲取,然後顯示。
NSInteger year = [SuperDateUtil currentYear]; copyrightView.text=[NSString stringWithFormat:@"Copyright © %d Ixuea. All Rights Reserved",year];
實現字串國際化
建立字串檔案
選中專案目錄-New File-Strings File,名稱必須為Localizable.strings。
提示:不國際化,也可以用這種方式將程式碼中字串寫到單獨的檔案,方便管理。
啟用國際化
選中專案Project-Info,在Localiztion中,點選加號,新增要國際化的語言,例如預設有英語,這裡新增一箇中文簡體,然後會彈出一個介面,選擇要國際化的檔案,這裡都選擇,最後點選完成;然後上面建立Localizable.strings檔案,就可以展開,發現有兩個檔案,一個是中文簡體,一個是英文。
新增字串
現在要做的就是在這兩個檔案中新增字串,這裡就把專案中所有字串全部拷貝過來,因為這個每次用到時再新增浪費時間。
獲取字串
NSString *result=NSLocalizedString(@"Copyright", @"");
result=[NSString stringWithFormat:result,year];
copyrightView.text=result;
如何實時生效
因為目前iOS系統更改語言後,會軟重啟,所以不存在需要在應用內處理實時生效問題。
應用名稱國際化
雖然應用名稱也是字串格式化,但不能寫到Localizable.strings,需要寫到InfoPlist.strings檔案中。
實現
建立InfoPlist.strings檔案,並啟用國際化,和前面國際化字串差不多,只是檔名稱不一樣,name是固定的:
英文檔案:
CFBundleName="CloudMusic";
中文簡體檔案:
CFBundleName="我的雲音樂";
執行專案後,在回到桌面,可以看到名稱確實實現了國際化。
下次更新全域性顏色管理。