有關開發經驗的幾個問題,開發經驗幾個問題
---------------------------------我是帥氣的標題列【結尾有彩蛋,彩蛋】-----------------------------------------------------
首先是UI方面,關於應用中的國際化問題: 設定中英文的切換。這一塊基本上就是建立一個新的檔案類型1、File-> New-> flie->Resource->Strings File,建立一個Strings File類型的檔案,有一個需要注意的地方,就是這個檔案的命名必須是Localizable,因為Xcode尋找國際化的內容就是根據Localizable檔案來尋找的,2、點擊建立的檔案並在Xcode右側的控制台中點擊Localize..按鈕,啟用國際化 3、在PROJECT中Info選項卡下面對應的Loacalization添加相應的語言即可。4、添加完語言後,在Localizable會出現對應的語言檔案,這樣就直接在檔案中編寫軟體裡涉及到的字元就可以了。 例如 :“OK” = "確定"; [說明一點,結尾的分號不要忘記] 5、以上就是配置方面的,下面就是使用了: 使用裡面的字元,只需要使用NSLocalizedString(..,..)就可以了,例如:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"WARING", nil) message:NSLocalizedString(@"NetworkConnectError", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"CANCEL", nil) otherButtonTitles:NSLocalizedString(@"OK", nil), nil];[alert show];
這樣,應用的國際化就配置完成了。
--------------------------------------我是華麗的分割線 ------------------------------------------------------------------
關於程式的調試 : 一般採用“斷點調試”很普遍,採用NSLog的列印輸出也不在少少數,畢竟這個更方便一些。但是程式中涉及到大量的輸出語句,使得應用存在一種潛在的風險,所以我們可以採用這種列印方式,更好的控制調試的方法最大化的減少調試對程式的影響。
1.#ifdef DEBUG2.#define DMLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])3.#else4.#define DMLog(...) do { } while (0)
這樣如果你使用DMLog,那麼它只能在debug build期間列印。__PRETTY_FUNCTION__ 也可以幫忙列印出log所在的函數的名稱。
-------------------------------------------------還是我,我還是華麗的分割線----------------------------------------------------
一般應用託管到蒲公英打包上傳時選擇的是Save for Enterprise Deployment的打包方式,然後匯出[Export],切記,上傳蒲公英的應用不能採用直接把包拖進iTunes裡面然後再拖出來獲得ipa包,通俗的說這時候的包是用來上線 Apple Store而不是用來測試的,蒲公英是一個測試平台,對上傳的這個包是安裝不了的。
-------------------------------------------------低調秀氣的分割線----------------------------------------------------------
在OC中懶載入是使用廣泛的,而在Swift2.0 中要使用關鍵字進行聲明,直接上代碼吧:
lazy var applicationDocumentsDirectory: NSURL = { // The directory the application uses to store the Core Data store file. This code uses a directory named "lalala.ServiceShop" in the application's documents Application Support directory. let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) return urls[urls.count-1] }()
在切換視圖的主介面
let app = UIApplication.sharedApplication().delegate as! AppDelegate app.createTabBarView()
----------------------------------------------------
下拉式功能表實現原理 設定一個tableView ,底部可以是一個透明的view,上面加上一個imageview,背景圖片可以設定成那種帶尖角的,ps處理;然後加上一個tableview,同樣設定透明,tablecell可以自訂。
關於3DTouch【針對的是表徵圖的點擊和介面的跳轉】 主要是涉及到介面的跳轉,我主要是採用通知的方式進行的介面跳轉,在程式的根視圖【父類】,裡面註冊通知,在相應的介面裡面進行介面的切換和調用即可【注意點: 介面切換時候注意延遲的使用,因為有時候介面還未建立就進行跳轉是達不到目標的效果的】 關於網路請求的https的問題,從Xcode7開始預設使用的是https所以在info.plist檔案中配置一下即可:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
-------------------我又來啦------------------------------- 關於出現的一個很**的錯誤提示 “Certificate identity 'iPhone Developer: xxxx ho (2J123456HA)' appears more than once in the keychain. The codesign tool requires there only be one.” 這時候你的你的內心是拒絕的,已經到了最後一步了就出現了這個問題,相死的心估計都有了,但是慢慢來,分析一下就能知道 其實這個的原因是keychain access中存在到期的'iPhone Distribution: xxxx',但沒有顯示在鑰匙鏈/登入中,而是在鑰匙鏈/系統中,並且是隱藏的,因此需要在鑰匙鏈->顯示->顯示到期認證,然後把鑰匙鏈下的登入和系統的到期認證都刪掉。
而且我在搜尋答案的時候,看到一篇文章,有可能刪除到期認證失敗,但是在keychain裡面卻顯示刪除成功,這個問題的解決方案是重啟keychain,刪除,重複這個過程直到真正刪除成功。
有時候在keychain裡面找不到已到期、多餘的認證,但我們在xcode的target的building setting的code signing裡面卻能夠看到多餘的認證,這個就證明我們的keychain並沒有清楚乾淨。
總結,解決這個問題的步驟是:1.清掉keychain裡面多餘的認證。2.重新整理xcode裡面的provisioning profile。
-----------------------我是彩蛋?【oh, NO】------------------------- 關於應用崩潰後如何看崩潰的資訊,一般我們會收到一些崩潰的案例
// 2: 基本資料Date/Time: OS Version: Report Version:// 3: 異常Exception Type: Exception Codes: Highlighted Thread: // 4: 線程回溯Thread 0 name: Dispatch queue: com.apple.main-threadThread 0:Thread 1:// 5: 線程狀態Thread 0 crashed with ARM Thread State (32-bit):// 6: 二進位映像Binary Images:
(1) 進程資訊是閃退進程的相關資訊。Incident Identifier是崩潰報告的唯一識別碼。CrashReporter Key 是與裝置標識相對應的唯一索引值。Hardware Model 標識裝置類型。
Process 是應用程式名稱。(2) 基本資料這部分給出了一些基本資料,包括閃退發生的日期和時間(3) 異常在這部分,你可以看到閃退發生時拋出的異常類型。還能看到異常編碼和拋出異常的線程(4) 線程回溯這部分提供應用中所有線程的回溯日誌。 回溯是閃退發生時所有活動幀清單。二進位庫的名稱調用方法的地址
(5) 線程狀態這部分是閃退時寄存器中的值。一般不需要這部分的資訊,因為回溯部分的資訊已經足夠讓你找出問題所在。(6) 二進位映像這部分列出了閃退時已經載入的二進位檔案。 通過查看這些內容就能擷取完整的錯誤資訊了,從而定位到錯誤的所在。 -------------------彩蛋來嘍----------------------- 附一個軟體大全的網址:http://www.sdifenzhou.com/category/black-apple/apple-software/page/6/
轉載請附連結:http://www.cnblogs.com/windsSunShine/p/5869465.html
【個人看法,不喜勿噴】