本文介绍了迅速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错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 11:43