【问题标题】:Clear out contents in NSMutableData清除 NSMutableData 中的内容
【发布时间】:2014-12-04 07:11:37
【问题描述】:

我是 Swift 和 iOS 开发的新手。 我们如何在不使用释放的情况下清除NSMutableData,然后再次重新分配/初始化以再次使用?

我尝试过resetBytesInRange(),但这会将内容替换为零。

我试过data.length = 0,但是追加后末尾有垃圾数据。

data.setData(nil) 给出一个错误。

我阅读了this question,但它并没有迅速解决我的问题。

请帮忙。

【问题讨论】:

  • data.length = 0 确实清除 NSData 对象的内容。你能举一个具体的例子吗?

标签: ios swift nsmutabledata


【解决方案1】:

尝试将setData()NSData() 一起使用:

mytableData.setData(NSData())

【讨论】:

    【解决方案2】:

    对于 Swift,为当前数据创建新数据对象将用空字节替换旧字节。

    data = NSData(data: NSData())
    println(data)
    

    对于可变数据:

    mutableData = NSMutableData(data: NSMutableData())
    println(mutableData)
    

    输出:空字节数组

    <>
    

    【讨论】:

    • 问题是关于变异NSMutableData
    • mutableData = NSMutableData(data: NSMutableData()) 替换了NSMutableData。如果您有多个对此 NSMutableData 的引用,则可能不是这种行为。
    • OP 想要nil NSMutableData,这也会影响多个引用。
    • @Kirsteins:你认为这对否决票?您在哪里找到这将产生多个参考。给我一个解释。
    • 如果您有多个引用指向与变量data 相同的对象,并且您将新对象分配给data,则其他引用将指向不同的对象。在您的情况下,您不是在变异,而是在替换。
    猜你喜欢
    • 2015-04-30
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 2016-05-12
    • 2011-05-02
    相关资源
    最近更新 更多