代码之家  ›  专栏  ›  技术社区  ›  james

如何使用1 uitextfield跟踪3个输入字符串

  •  1
  • james  · 技术社区  · 15 年前

    如何跟踪3个输入字符串不使用1 UITextField ?

    我使用一个uitextfield进行用户输入,在三种不同的输入类型(出发、航空公司、到达)之间切换。我把这三个都存起来了 NSMutableString 这样的对象(取决于输入的内容或其他内容):

    depart = [input.text copy];
    arrive = [input.text copy];
    airline = [input.text copy];
    

    我使用设置uitextfield的值(取决于用户输入的内容)

    input.text = [arrive copy];
    input.text = [depart copy];
    input.text = [airline copy];
    

    我使用 input.text copy 然而,我在运行一个 Instruments 测试是否泄漏。我有一种感觉,这是我不适当清理使用 copy . 如何保留每个输入字符串而不导致内存泄漏问题?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Daddy    15 年前

    将字符串转换为保留的属性。

    @property (retain) NSString *airline;
    

    使用self设置属性值。

    self.airline = input.text;
    

    在不使用self的情况下,您可以手动设置值并绕过属性,这样文本就不会被保留。

    释放-(void)dealloc方法中的对象

    然后,在编辑特定信息时,可以使用属性填充文本字段

    input.text = self.airline;
    

    这有道理吗?

        2
  •  1
  •   Vladimir    15 年前

    泄漏工具应该告诉你泄漏在哪里。

    不过,这很明显。 您应该在分配新数据之前释放旧数据。 因此,所有呼叫都像

    depart = [input.text copy];

    应该像

    [depart release]; depart = [input.text copy];

    你也应该 release 中的所有字符串 dealloc 类的方法。