IOS開發基礎知識--片段49,ios基礎知識--49

來源:互聯網
上載者:User

IOS開發基礎知識--片段49,ios基礎知識--49

1:iOS項目設定檔info.plist檔案解析

Localization native development region本地化Executable file可執行檔路徑Bundle identifier應用的唯一標識InfoDictionary version plist檔案的版本號碼Bundle name安裝的時候建立的檔案夾的名稱Bundle display name程式安裝到手機上的時候,案頭的顯示名稱Bundle versions string, short   iTunes上展示的版本號碼Bundle version上傳到APP Sore需要用的版本號碼Application requires iPhone environment應用啟動並執行環境Launch screen interface file base name啟動介面的配置Main storyboard file base name主storyboardRequired device capabilities cup的架構Supported interface orientations橫豎屏的支援View controller-based status bar appearance是否取消控制器管理狀態列

2:iOS最新的使用權限設定

<!-- 相簿 --> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能訪問相簿</string> <!-- 相機 --> <key>NSCameraUsageDescription</key> <string>App需要您的同意,才能訪問相機</string> <!-- 麥克風 --> <key>NSMicrophoneUsageDescription</key> <string>App需要您的同意,才能訪問麥克風</string> <!-- 位置 --> <key>NSLocationUsageDescription</key> <string>App需要您的同意,才能訪問位置</string> <!-- 在使用期間訪問位置 --> <key>NSLocationWhenInUseUsageDescription</key> <string>App需要您的同意,才能在使用期間訪問位置</string> <!-- 始終訪問位置 --> <key>NSLocationAlwaysUsageDescription</key> <string>App需要您的同意,才能始終訪問位置</string> <!-- 日曆 --> <key>NSCalendarsUsageDescription</key> <string>App需要您的同意,才能訪問日曆</string> <!-- 提醒事項 --> <key>NSRemindersUsageDescription</key> <string>App需要您的同意,才能訪問提醒事項</string> <!-- 運動與健身 --> <key>NSMotionUsageDescription</key> <string>App需要您的同意,才能訪問運動與健身</string> <!-- 健康更新 --> <key>NSHealthUpdateUsageDescription</key> <string>App需要您的同意,才能訪問健康更新 </string> <!-- 健康分享 --> <key>NSHealthShareUsageDescription</key> <string>App需要您的同意,才能訪問健康分享</string> <!-- 藍芽 --> <key>NSBluetoothPeripheralUsageDescription</key> <string>App需要您的同意,才能訪問藍芽</string> <!-- 媒體資料庫 --> <key>NSAppleMusicUsageDescription</key> <string>App需要您的同意,才能訪問媒體資料庫</string>

 3:關於openURL

蘋果在iOS 2中引入了openURL:方法來進行APP間的跳轉。不過在iOS 9中,相關的canOpenURL在iOS 10中,蘋果已棄用了openURL,轉而用openURL:options:completionHandler:替代,IOS10 已經無法開啟系統設定等,所以下面的方法只有在其它跳轉可以用,並且要用到後面的方法必須在XCODE8上面運行;

舊:

- (BOOL)openURL:(NSURL*)url

新:

- (void)openURL:(NSURL*)url options:(NSDictionary *)options

  completionHandler:(void (^ __nullable)(BOOL success))completion

相容方法:

- (void)openScheme:(NSString *)scheme {  UIApplication *application = [UIApplication sharedApplication];  NSURL *URL = [NSURL URLWithString:scheme];   if ([application respondsToSelector:@selector(openURL:options:completionHandler:)]) {    [application openURL:URL options:@{}       completionHandler:^(BOOL success) {      NSLog(@"Open %@: %d",scheme,success);    }];  } else {    BOOL success = [application openURL:URL];    NSLog(@"Open %@: %d",scheme,success);  }}

 4:關於XCode 7的

(需要登入蘋果開發人員帳號)7.2.1:https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.2.1/Xcode_7.2.1.dmg7.2 : https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.2/Xcode_7.2.dmg7.1.1: https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.1.1/Xcode_7.1.1.dmg7.1 : https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7.1/Xcode_7.1.dmg7.0 : https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_7/Xcode_7.dmg

5:iCloud相關知識點

iCloud是IOS5以後一個比較重要的內容;每個Apple ID使用者都有一個免費的iCloud賬戶,但是使用者可能禁用某個裝置的iCloud。iCloud支援兩種應用儲存分別為:

 

1.1 document storage:儲存使用者文檔和應用資料到使用者的iCloud賬戶;使用Document Storage來管理應用的關鍵資料。與應用直接相關的檔案和資料,總是應該使用Document Storage。如使用者文檔、私人的app資料檔案、以及應用或使用者產生的資料檔案;只受使用者iCloud賬戶的空間限制;裝置端發生變化時,iCloud總是會拉取檔案中繼資料和資料;裝置總是會拉取檔案中繼資料,但是直到應用試圖使用檔案時才會拉取檔案資料;大部分我們都是結合這種進行儲存;

 

1.2 key-value data storage:分享小量的非關鍵配置資料到應用的多個執行個體;參數或其它配置資料,如果需要在多個app執行個體之間共用,並且不是關鍵資料,就可以使用key-vlaue storage。只能儲存property list資料,並且容量有限,限制為64KB;定期在裝置和iCloud之間傳輸key-value資料;

 

關於document storage隱藏檔的執行個體git上已經有一個不錯的例子,可以實現上傳檔案 多台裝置共用的效果;地址:https://github.com/iRareMedia/iCloudDocumentSync 

 

如果想查看iCloud上儲存的這些檔案可以安裝一個軟體:http://cookingrobot.de/posts/plain-cloud

 

iCloud 的所有檔案同步操作都是用過駐留在系統的一個進程進行的。 也就是說你的 App 所對應的 iCloud 目錄,除了你的 App 進程會操作它, iCloud Daemon 也會操作它。在 iOS 系統中, iCloud Daemon 因為手機耗電以及網路流量等考慮, 是不會自動下載其他裝置新添加到容器中的檔案的;會將這些新檔案的元資訊(MetaData)傳輸過來,比如檔案名稱,檔案尺寸,修改時間等等。也就是說我們需要查詢檔案元資訊的列表,就可以得到和服務端同步的檔案清單了。 只有你請求開啟某個檔案的時候才會去下載它的內容。但在 Mac 筆記本上,那麼其他裝置只要向 iCloud 容器中添加新的檔案,你的 iCloud Daemon 進程就會自動的將它們下載下來。

 

iCloud 最簡單的存在形式其實就是一個特定的檔案夾,它位於 iOS 裝置的/private/var/mobile/Library/Mobile Documents/目錄下。該目錄中儲存有各應用共用至雲端的所有應用資料。 應用程式對該目錄有部分讀寫權限,該許可權是開發人員特有的。對於密碼鑰匙串,開發人員可以在各應用間共用雲端資料。比如,X 公司開發的所有應用可以共用、查看以及更新相同的檔案集。你無法共用你開發人員賬戶以外的資料,所以我的應用程式無法看到 X 公司的檔案,反之亦然。 iOS 系統監控著 Mobile Documents 檔案夾。當檔案被更改,裝置會自動的將這些更改上傳至雲端。從而這些更改就可以傳輸至同一帳號綁定的所有裝置上。這些操作都由本地作業系統服務進行處理,應用程式不直接參与其中。 相反,應用程式通過訂閱不同種類的通知來讓應用知道最新發生的更改。然後,它們可以通過對比本地和 iCloud 端的資料差異從而來處理資料版本衝突。 至於開發人員如何做就是他們的事了。他們可以選擇“最近更改有效”策略。或者他們可以結合一些其他方式的更改。應用程式的職責就在於確保不同硬體裝置單元上的資料保持一致,同時也需要可用的網路連接來處理這種一致性。 當使用者失去網路連接的時候,麻煩事就來了。比如,你也許在沒有網路連接的航班上編輯待辦事項,與此同時你的伴侶在他或她所在的城市正在更新同一份待辦事項。開發人員們為此工作了數月,研究如何在同時接受雙方修改的前提下結合這些更改並更新目標檔案的策略。 最後,iCloud API 介面方式或許會很少。它實際上就只是一個異地同步的隱藏檔夾。正是因為可以在多台的蘋果裝置上對iCloud的同一個檔案進行操作,所以會導致衝突,解決這種衝突也是很麻煩;

 

WWDC 2015 中提到,CloudKit 已經不僅可以在 iOS 和 OS X 上使用,可以在你的網站上整合CloudKit JS,以便 iCloud 使用者可以在瀏覽器中也能使用相應的功能,或者是使用CloudKit web service對 CloudKit 服務端直接進行 HTTP 要求。這方面可能得其它平台進行驗證;

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.