NSString是一個特殊的類,你可以看到打印出來的class結(jié)果顯示并不是NSString。NSString的初始化方法會通過抽象工廠模式來返回最合適的類,有點類似NSNumber。
對NSString來說,alloc返回的是一個用來占位的子類NSPlaceholderString,這個子類并沒有實現(xiàn)NSString抽象類的各種方法,例如NSString *string = [NSString alloc];之后直接調(diào)用[string length];會出現(xiàn)崩潰。
string和newString只進行了初始化,結(jié)果都是空字符串@"",這個結(jié)果在編譯期就已經(jīng)確定了,從而編譯器做了優(yōu)化讓他們指向了相同的地址。
OC源碼 —— alloc, init, new和dealloc上一篇最后講release的時候說到,在release的最后,當(dāng)引用計數(shù)減為0的時候就進入了dealloc的過程。這一篇就來講講dealloc和相關(guān)的一些方法。先從deall...