2010-07-26 21 views
8

Tôi đã có một vòng lặp khá lớn mà nhận được một chuỗi, làm điều gì đó với nó, hơn đi vào kế tiếp. Ban đầu tôi đã phát hành nó sau đó phân bổ lại nó nhưng nghĩ rằng đó là một chút lãng phí tài nguyên nhưng không thể tìm ra cách chỉ cần xóa nó ra để tái sử dụng nó.Xóa thay vì phát hành một NSMutableString

Trả lời

18

Một cách là [myString setString: @""].

+1

Thats gây phiền nhiễu, tôi thực sự đã thử điều đó và nó bị hỏng nên nghĩ rằng nó sẽ không hoạt động. Kết thúc tôi để lại một tuyên bố khác mà nó bị rơi. – Rudiger

1

Các giải pháp được lựa chọn sẽ sụp đổ với các lỗi sau:

'Cố gắng để biến đối tượng bất biến với setString:'

này làm việc cho tôi thay vì:

self.myString = [NSMutableString stringWithString: @ ""];

đảm bảo bạn tổng hợp myString trong lớp học của mình.

+0

Đồng ý. Đặt NSMutableString thành NSString không tốt. Lỗi bạn nhận được trong Xcode 4.4 là "Các kiểu con trỏ không tương thích gửi 'NSString *' đến tham số kiểu 'NSMutableString *'". Đặt nó với giải pháp này là tốt hơn. – Joseph

+1

Dường như với tôi rằng điều này là phân bổ một thể hiện NSMutableString mới? Đó không chỉ là lãng phí nhiều tài nguyên như trong câu hỏi ban đầu? – ArtOfWarfare

+0

Nếu bạn nhận được 'Cố gắng biến đổi đối tượng bất biến với setString:' thì chuỗi bạn đang cố sửa đổi không phải là 'NSMutableString' và bạn đang xử lý một vấn đề khác với" Xóa thay vì phát hành NSMutableString ", tiêu đề của câu hỏi này. – JWWalker

Các vấn đề liên quan