1. 程式人生 > 其它 >iOS OC純程式碼企業級專案實戰之我的雲音樂(持續更新))

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="我的雲音樂";

執行專案後,在回到桌面,可以看到名稱確實實現了國際化。

下次更新全域性顏色管理。