如何創(chuàng)建字符串對象:
通過不同的方式創(chuàng)建字符串,字符串對象儲存的位置也不一樣
>如果是通過字符串常量創(chuàng)建,那么字符串對象存儲在常量區(qū)中
>如果是通過alloc initWithFormat/stringWithFormat創(chuàng)建,那么字符串對象存儲在堆區(qū)中
而且需要注意:
>alloc創(chuàng)建兩次相同內(nèi)容的字符串對象,不同的平臺存儲的方式也不一樣,如果是Mac平臺系統(tǒng)會自動對字符串對象進行優(yōu)化兩個對象指向的是同一塊存儲空間(對alloc進行優(yōu)化還是在常量區(qū)),但是如果是iOS平臺就是兩個對象指向不同的存儲空間地址(alloc是在堆內(nèi)存)
>不同的編譯器存儲的方式也不一樣,如果是Xcode6以下并且是在iOS平臺,那么每次alloc都會創(chuàng)建一個新的對象,如果是在Xcode6以上那么alloc多次指向同一塊存儲空間
Snip20170929_108.png
Snip20170929_109.png