【问题标题】:Clearing rather than releasing a NSMutableString清除而不是释放 NSMutableString
【发布时间】:2010-07-26 06:22:26
【问题描述】:

我有一个相当大的循环,它获取一个字符串,对其进行处理,然后进入下一个。我最初是发布它然后重新分配它,但认为这有点浪费资源,但不知道如何清除它以重复使用它。

【问题讨论】:

    标签: iphone nsmutablestring


    【解决方案1】:

    一种方法是[myString setString: @""]

    【讨论】:

    • 那很烦人,我实际上尝试过它并且它崩溃了所以认为它不起作用。最后我留下了另一个让它崩溃的声明。
    【解决方案2】:

    所选解决方案将崩溃​​并出现以下错误:

    '尝试用 setString 改变不可变对象:'

    这对我有用:

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

    确保您在课堂上综合了 myString。

    【讨论】:

    • 同意。将 NSMutableString 设置为 NSString 并不好。您在 Xcode 4.4 中遇到的错误是“不兼容的指针类型将 'NSString *' 发送到 'NSMutableString *' 类型的参数”。使用此解决方案进行设置会更好。
    • 在我看来这是在分配一个新的 NSMutableString 实例?这不是和原来的问题一样浪费资源吗?
    • 如果你得到 'Attempt to mutate immutable object with setString:' 那么你试图修改的字符串不是NSMutableString,你正在处理一个不同于“Clearing rather而不是发布一个 NSMutableString",这个问题的标题。
    猜你喜欢
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多