NSTaggedPointerString#####1)NSTaggedPointerString其父類是NSString直接當做字符串來用就好了~~~調試輸出:po [NSClassFromString(@"NSTaggedPointerString") superclass]NSString~~~#####2)__NSTaggedPointerString這個類型是標簽指針字符串,這是蘋果在 64 位環境下對 NSString,NSNumber 等對象做的一些優化。簡單來講可以理解為把指針指向的內容直接放在了指針變量的內存地址中,因為在 64 位環境下指針變量的大小達到了 8 位足以容納一些長度較小的內容。于是使用了標簽指針這種方式來優化數據的存儲方式。從他的引用計數可以看出,這貨也是一個釋放不掉的單例常量對象。在運行時根據實際情況創建。對于 NSString 對象來講,當非字面值常量的數字,英文字母字符串的長度小于等于 9 的時候會自動成為 NSTaggedPointerString 類型.如果有中文或其他特殊符號(可能是非 ASCII 字符)存在的話則會直接成為 )__NSCFString 類型。這種對象被直接存儲在指針的內容中,可以當作一種偽對象