2011-06-01 64 views
-3

我已經做了很多次之前,從來沒有問題,但我現在有問題,我無法解決。問題與NSString

我在H文件中聲明瞭一個NSMutableString。命名爲TheString。 我有一個名爲TextField的UItextfield的IBOutlet 在viewdidload中,我用一些文本填充這個字符串。這很好,當我NSLOG它一切正常。

然後在一個按鈕按下我做的:

TheString = [TheString stringByReplacingOccurrencesOfString:@"And" 
withString:TextField.text];               

我已經這樣做了負載的時候,它總是有效。但是,這次我沒有任何錯誤地構建應用程序,然後按下按鈕並崩潰。我檢查了控制檯,當它崩潰時沒有錯誤。 編輯

在.h文件我有這個也:

@property(nonatomic, retain) NSMutableString *TheString; 

而且在viewDidLoad中我這樣做

TheString = [NSMutableString alloc]; 

而且我合成 我給它一些文字的NSLog它,它是所有的工作。 如果有人可以請幫助我,這將是偉大的!

謝謝

+1

什麼是回溯你在XCode中得到什麼?總會有某種回溯。但它看起來像你沒有連接UIBuilder中的IBOutlet。 – grundprinzip 2011-06-01 10:38:50

+0

清理,編譯然後運行... – Jhaliya 2011-06-01 10:38:59

+0

在按鈕處理程序中放入一個NSlog或斷點並查看它是否被調用。因爲您聲稱它是在H文件中聲明的,請檢查TheString是否被正確分配並保留。 – Krishnabhadra 2011-06-01 10:39:11

回答

0

您是否分配了TheString

試試這個

TheString = [[NSMutableString alloc] initWithString:@"Some text here"]; 
TheString = [TheString stringByReplacingOccurrencesOfString:@"And" withString:TextField.text]; 

確保你release它你做的時候用它

+1

請注意,您在上面的代碼中泄漏了原始字符串。 – Caleb 2011-06-01 10:47:12

0

TheString = [NSMutableString alloc];不應該做的。將其更改爲

TheString = [[NSMutableString alloc] init]; 

和按鈕事件調用後

[TheString replaceOccurrencesOfString: @"And" 
withString: TextField.text options: 0 range: NSMakeRange(0, [receiver length])]; 
+0

感謝您的回覆!我已經嘗試過,但它沒有什麼不同。 – ApiMail 2011-06-01 11:08:08

+0

如果TextField.text爲零,請使用調試器進行檢查。 – dasdom 2011-06-01 11:19:27

+0

2個問題的答案[email protected],如果你不想改進/改變你的答案編輯你的原始答案本身。通過給出多個答案不垃圾垃圾論壇 – Krishnabhadra 2011-06-01 11:22:35