首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换NSMutableArray的元素

替换NSMutableArray的元素
EN

Stack Overflow用户
提问于 2015-02-28 20:33:44
回答 2查看 213关注 0票数 0

我在我的WeatherData阵列中有4个变量输入。我的数组似乎也在适当的范围内添加了它们(即-3,但实际上我想用新的信息替换当前的信息。

我最初做的是:

代码语言:javascript
复制
if NSUserDefaults.standardUserDefaults().objectForKey("WeatherData")  != nil {

    WeatherData = NSUserDefaults.standardUserDefaults().objectForKey("WeatherData") as NSMutableArray

    DisplayInfo(WeatherData[0] as String, Temperature: WeatherData[1] as Int, Code: WeatherData[2] as String, Condition: WeatherData[3] as String)
}

然后我做一些事情,最后我把它保存下来:

代码语言:javascript
复制
WeatherData.replaceObjectsInRange(0.3, withObjectsFromArray: [placemark.locality, Temperature, Code, Condition])

NSUserDefaults.standardUserDefaults().setObject(WeatherData as NSArray, forKey: "WeatherData")

每次迭代时,数组都会变大,如下所示:

代码语言:javascript
复制
(
"San Francisco",
50,
33,
Fair,
"San Francisco",
50,
33,
Fair,
"San Francisco",
50,
33,
Fair,
"San Francisco",
50,
33,
Fair
)

但它只应该是

代码语言:javascript
复制
(
"San Francisco",
50,
33,
Fair,
)

这意味着内容应该被替换并保存在NSUserDefaults中。

提前感谢您的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-28 21:00:49

问题是您的错误和Swift中的错误(我想是)结合在一起的。

你说过:

代码语言:javascript
复制
WeatherData.replaceObjectsInRange(0.3, withObjectsFromArray: [placemark.locality, Temperature, Code, Condition])

您正在传递0.3 (一个Double文本),但是replaceObjectsInRange:withObjectsFromArray:需要一个NSRange作为该参数。编译器应该在这里给出一个错误

但是,编译器正在隐式地将文本转换为NSMakeRange(0,0),因此replaceObjectsInRange:withObjectsFromArray:将在数组的开头插入新元素。

试一试:

代码语言:javascript
复制
WeatherData.replaceObjectsInRange(NSRange(0 ... 3), withObjectsFromArray: [placemark.locality, Temperature, Code, Condition])
票数 0
EN

Stack Overflow用户

发布于 2015-02-28 21:37:09

感谢罗布·梅奥夫的帮助,下面是我的代码副本:

代码语言:javascript
复制
if WeatherData.count == 0 {

    WeatherData.addObjectsFromArray([placemark.locality, Temperature, Code, Condition])

} else {

WeatherData.replaceObjectsInRange(NSRange(0 ... 3), withObjectsFromArray: [placemark.locality, Temperature, Code, Condition])

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28786568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档