有關開發經驗的幾個問題,開發經驗幾個問題

來源:互聯網
上載者:User

有關開發經驗的幾個問題,開發經驗幾個問題

 

---------------------------------我是帥氣的標題列【結尾有彩蛋,彩蛋】-----------------------------------------------------

         首先是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 

【個人看法,不喜勿噴】

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.