问题描述
我编写了一个应用程序,它在 tableView 中显示一个无穷大的质数列表。 我有一个自定义单元格,里面有 2 个 UIView 和 UILabel。 我有一个函数,它返回质数数组 [[Prime1,Prime2],[Prime3,Prime4],etc]。
在 TableViewController 中,我有 arrOfPrimes,从 1 到 100
在委托方法“willDisplay”中,我调用 primeNumbers 函数并将新数据附加到我现有的数组中
'''if indexPath.row == prime.count - 1
什么时候
tableView.reloadData()
它可以工作,但它会滞后并冻结用户界面一段时间。
我试着用预取方法找出来,但失败了.. 我想我应该使用操作并使其在后台同步?但如何,我不 知道。
这是我生成素数的代码
'''
static func findPrimeNumberlist(fromNumber:Int,toNumber: Int) -> [[Int]] {
var primes = [Int]()
for i in (fromNumber + 1)...toNumber
{
var isPrime = true
if i <= 1 { // number must be positive integer
isPrime = false
}
else if i <= 3 {
isPrime = true
}
else {
for j in 2...i/2 // here i am using loop from 2 to i/2 because it will reduces the iteration.
{
if i%j == 0 { // number must have only 1 factor except 1. so use break: no need to check further
isPrime = false
break
}
}
}
if isPrime {
primes.append(i)
}
}
let primesArr = primes.chunked(into: 2)
return primesArr
}
'''
和分块功能(保罗哈德森坦克你) '''
extension Array {
func chunked(into size: Int) -> [[Element]] {
return stride(from: 0,to: count,by: size).map {
Array(self[$0 ..< Swift.min($0 + size,count)])
}
}
}
'''
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)