本文介绍了迅速array.removeAtIndex错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么我得到错误的NSArray没有一个成员名为removeAtIndex'。我怎样才能解决这个问题?该错误是在第四最后一行。如果我的问题是愚蠢的。对不起,我是相当新编程。我AP preciate所有帮助我得到的。
进口基金会
让userDefaults = NSUserDefaults.standardUserDefaults()FUNC isAppAlreadyLaunchedOnce() - GT;布尔{
让默认值= NSUserDefaults.standardUserDefaults() 如果让isAppAlreadyLaunchedOnce = defaults.stringForKey(isAppAlreadyLaunchedOnce){
的println(应用程序已经启动)
返回true
}
其他{
defaults.setBool(真,forKey:isAppAlreadyLaunchedOnce)
的println(应用推出的第一时间)
返回false
}
}结构newFactBook {
让factsArray = [
蚂蚁舒展当他们在早晨醒来。
鸵鸟跑得比马快。
奥运金牌实际上是做多是银。
你天生有300块骨头,你的时间是一个成年人,你将有206
这需要大约8分钟,光从太阳到达地球。
一些竹类植物可以生长在短短一天差不多一米。
佛罗里达的状态比英格兰大。
有些企鹅可以跨越2-3米露出水面。
平均来说,在坚持66天,形成一个新的习惯。
猛犸仍走在地上时,大金字塔被建造。]} VAR checkLaunch = isAppAlreadyLaunchedOnce()
VAR oldFunFactsArray = [] 如果(checkLaunch == FALSE){
oldFunFactsArray = newFactBook()。factsArray
} 否则,如果(checkLaunch ==真){
oldFunFactsArray = userDefaults.objectForKey(键)作为! NSArray的
}
FUNC randomFacts1() - > (字符串,整数){
VAR unsignedArrayCount = UInt32的(oldFunFactsArray.count)
VAR unsignedRandomNumber = arc4random_uniform(unsignedArrayCount)
VAR randomNumber = INT(unsignedRandomNumber)
回报(oldFunFactsArray [randomNumber]作为!字符串,randomNumber) }
oldFunFactsArray.removeAtIndex [randomFacts1()。1] //这里的错误userDefaults.setObject(oldFunFactsArray,forKey:钥匙)
userDefaults.synchronize()
的println(oldFunFactsArray)
解决方案
我们这里有一些问题:
1
如何调用一个方法 removeAtIndex
是一个接受内部
作为参数的方法。它的不能通过这种方式调用
removeAtIndex [randomFacts1()。1]
相反,你应该写
removeAtIndex(randomFacts1()。1)
2。该类型的 oldFunFactsArray
NSArray的是,这是错误的。
完整的,当你写这样的:
VAR oldFunFactsArray = []
斯威夫特做此推断:
VAR oldFunFactsArray:NSArray的= []
但在这一点上,你有一个一成不变 的NSArray
所以它不具备 removeAtIndex
方法。
由于您使用的斯威夫特,我建议你申报 VAR oldFunFactsArray
如下:
VAR oldFunFactsArray:[字符串]如果checkLaunch == {假
oldFunFactsArray = newFactBook()。factsArray
}其他{
oldFunFactsArray = userDefaults.objectForKey(键)作为! [串]
}
请注意,我在这里声明斯威夫特字符串(S)的阵列。由于我使用 VAR
关键字这个数组将可变,我们将能够调用 removeAtIndex
以后。
Hope this helps.
这篇关于迅速array.removeAtIndex错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!