原创 webView 高級用方法 二 webview與js的通信框架

#import "MJViewController.h" #import "MBProgressHUD+Add.h" @interface MJViewController () @end @implementation MJViewCo

原创 ios開發之深入淺出 (3) — ARC之前世今生

前兩節我們對 ARC(Automatic Reference Counting) 有了一個基本的理解,但是 ARC 是怎麼產生的,爲什麼蘋果要在其最新的 iOS/Mac OS X 上導入該框架? 如果不理解其背後的基本原理,只是死記

原创 ARC實戰中的具體應用

ARC是一個編譯器特徵,它提供了對OC對象自動管理內存。ARC讓開發者專注於感興趣的代碼和對象的關係,而不用考慮對象的retain和release。 轉自hherima的博客 原文:Transitioning to ARC

原创 ios開發之深入淺出 (2) — ARC之@property使用

上一回我們學到了一些ARC的基本概念,這一次我們來看看ARC對@property的使用規則有何影響。 所有者屬性 我們先來看看與所有權有關係的屬性,關鍵字間的對應關係。 屬性值 關鍵字 所有權 strong __stron

原创 ASI詳解

ASIHTTPRequest對CFNetwork API進行了封裝,並且使用起來非常簡單,用Objective-C編寫,可以很好的應用在Mac OS X系統和iOS平臺的應用程序中。ASIHTTPRequest適用於基本的HTTP請求,和

原创 ios開發之深入淺出 (6) — ARC之對象轉型

自 Xcode4.2 開始導入ARC機制後,爲了支持對象間的轉型,Apple又增加了許多轉型用的關鍵字。這一講我們就來了解其用法,以及產生的理由。 引子 我們先來看一下ARC無效的時候,我們寫id類型轉void*類型的寫法:

原创 iOS工程如何支持64-bit

iOS工程如何支持64-bit 蘋果在2014年10月20號發佈了一條消息:從明年的二月一號開始,提交到App Store的應用必須支持64-bit。詳細消息地址爲:https://developer.apple.com/

原创 iOS開源項目之日誌框架CocoaLumberjack

iOS開源項目之日誌框架CocoaLumberjack CocoaLumberjack是Mac和iOS上一個集快捷、簡單、強大和靈活於一身的日誌框架。CocoaLumberjack類似於流行的日誌框架(如log4j),但它是專

原创 iOS開發之深入淺出 (7) — ARC總結

通過前面幾篇文章的介紹,我想大家應該對ARC有了一個比較完整的理解。最後,我們來對ARC做一個總結,並把一些未涉及到的細節部分再深入討論一下。 內存管理基本原則 內存管理的依循下面的基本原則自己生成的對象,那麼既是其持有者不是自己生

原创 ios開發之深入淺出 (5) — ARC之Outlet與弱引用

使用weak property聲明Outlet 當我們使用 Interface Builder 生成Outlet對象的時候,一般都是作爲 subview 來使用的。比如 UIViewController 的view。所以說Outl

原创 ios開發之深入淺出 (4) — ARC之循環參照

概念 當我們使用強參照(Strong reference)時,往往需要留意 循環參照 的問題。循環參照指的是兩個對象被互相強參照,以至於任一對象都不能釋放。 一般情況下,當對象之間有“父子關係”時,強參照的情況發生的比較多。比如

原创 ios 第三方庫

知名應用程序的設計和技術一直都是開發者需要學習的,同樣這些應用所使用的開源框架也是不可忽視的一部分。此前《iOS第三方開源庫的吐槽和備忘》中作者ibireme列舉了國內多款知名應用所使用的開源框架,並對其中一些框架進行了分析,同樣國外

原创 XCode下的iOS單元測試

XCode下的iOS單元測試 XCode 內置了 OCUnit 單元測試框架,但目前最好用的測試框架應該是 GHUnit。通過 GHUnit + OCMock 組合,我們可以在 iOS 下進行較強大的單元測試

原创 iOS常用目錄整理說明

iOS常用目錄整理說明是本文要介紹的內容,雖然不同API全面,也算是在編程中常用到的存放目錄,所以是必備文檔,不多說,來看詳細內容講解。 1、【/Applications】 常用軟件的安裝目錄 內建軟體及JB軟體存放位置 2. 【

原创 蘋果Swift編程語言入門教程【中文版】4

  7 枚舉與結構     使用 enum 來創建枚舉。有如類和其他命名類型,枚舉可以有方法。     enum Rank: Int {   case Ace = 1 case Two, Three, Four, Five,