我有一個NSMutableString,如何將它轉換爲NSString?目標C:在NSString中轉換一個NSMutableString
回答
無論是通過:
NSString *immutableString = [NSString stringWithString:yourMutableString];
或通過:
NSString *immutableString = [[yourMutableString copy] autorelease];
//Note that calling [foo copy] on a mutable object of which there exists an immutable variant
//such as NSMutableString, NSMutableArray, NSMutableDictionary from the Foundation framework
//is expected to return an immutable copy. For a mutable copy call [foo mutableCopy] instead.
作爲的NSString的子類,但是你可以將其轉換爲一個NSString
NSString *immutableString = yourMutableString;
使它看上去不可變的,儘管它實際上保持不變。
許多方法實際上返回可變實例,儘管被聲明爲返回不可變的實例。
好的答案!對於最後一個解決方案,您不需要進行類型轉換,因爲NSMutableString繼承自NSString,並且您始終可以將子類的類型分配給它繼承的類型,而無需編譯器投訴。 – Senseful 2013-07-17 06:41:46
有效的點。不知道爲什麼我補充說。固定。 – Regexident 2013-07-17 11:10:59
@Regexident你能告訴我嗎?如果他們只是簡單地返回'NSString'(實際上是'NSMutableString',那麼當用戶修改'NSString'對象時,他們不知道對象本身會被改變,所以這個工作會返回一些副作用嗎?謝謝:) – hqt 2014-08-09 04:31:55
NSMutableString
是NSString
子類,所以你可以只強制轉換它:
NSString *string = (NSString *)mutableString;
在這種情況下,string
將是mutalbeString
的別名,但編譯器會抱怨,如果你試圖調用任何可變的方法在上面。
此外,您可以創建一個類的方法一個新的NSString:
NSString *string = [NSString stringWithString:mutableString];
你能告訴我嗎?如果他們僅僅返回NSString(實際上是NSMutableString,那麼當用戶修改NSString對象時,他們不知道對象本身會被改變,對嗎?那麼這個工作會返回一些副作用嗎?謝謝:) – hqt 2014-08-09 04:32:24
但是,如果潛在的可變字符串發生變化(通過mutableString變量,它實際上是否會更改不可變字符串的基礎值?如果它們都是指向同一對象的指針,它似乎會有至。 – 2018-01-08 19:14:51
- 1. 在目標C中將NSMutableString轉換爲NSUrl
- 2. 如何將NSMutableString轉換爲常規NSString?
- 3. 轉換的NSString浮動 - 目標C
- 4. NSString到NSDecimalNumber的目標C轉換
- 5. NSString輸入轉換目標c
- 6. 如何將HTML實體轉換爲目標C中的NSString C
- 7. 的NSMutableString幫助目標C
- 8. 在目標c中的nsstring
- 9. iPhone目標C - 如何從一個NSString
- 10. 電子郵件NSMutableString在目標C
- 11. NSString ascii在NSString中轉換
- 12. 如何將NSString轉換爲目標c中的NSDictionary?
- 13. 如何將NSArray轉換爲目標c中的NSString?
- 14. 轉換頂點信息的NSString到一個多維陣列 - 目標C
- 15. Objective-C的 - 的NSMutableString了setString VS的NSString
- 16. 提取從NSString的URL轉換成的NSMutableString
- 17. 是否有可能的NSString轉換爲純目標C代碼
- 18. 目標C - 類型轉換從的NSString INT
- 19. 如何將BYTEARRAYS轉換爲NSString的目標-c
- 20. 將NsNumber轉換爲nsString時的目標C錯誤
- 21. 一個轉換成NSString的一個恆
- 22. 轉換一個NSString到一個NSInteger
- 23. 轉換C到目標C
- 24. 轉換數目即,在目標C
- 25. 伊娃的NSString或NSMutableString?
- 26. NSMutableString vs NSString的用法?
- 27. 目標C - NSCalendar到NSString
- 28. 目標C爆炸的NSString
- 29. 目標C的NSString的NSArray
- 30. EXC_BAD_ACCESS NSString的目標C
從最近的(今天的)問題的歷史看起來你應該把你的手一個像樣的書可可獲得一個基本的想法事物如何在ObjC世界中發揮作用。亞倫Hillegass的書是一個非常好的開始。另外請查看http://cocoadevcentral.com/更多內容:發佈六個基本相同的問題(String-> CSV)的六個稍微不同的版本,其中我猜這個問題也涉及到這個問題,對你無能爲力。你只是發送垃圾郵件,並最終讓人們忽略你的問題。 – Regexident 2011-04-07 16:09:52
相反,如果提供的答案對您沒有幫助,並且人們會嘗試提供更合適的答案,那麼您應該更願意爲您的初始問題提供更多信息。一旦答案解決了你的問題,給它一個upvote並點擊綠色的複選標記來接受它。這樣具有相同問題的其他用戶可以更容易地找到經過驗證的解決方案,並且會稍後感謝您。同時它也增加了你實際獲得答案的機會;) – Regexident 2011-04-07 16:12:29
是的,你是對的,對不起....我會盡力減少壓力 – CrazyDev 2011-04-07 16:16:08