کنترل صفحات TableView
با سلام و احترام
من یه table View دارم که مقدار آرایه ای که بهش میفرستم زیاده و متغیر ولی وقتی از تعداد ردیفهای یک صفحه بیشتر میشه نرم افزار کرش میکنه
البته اون مثال کشتی و الوارها رو دیدم و متوجه شدم که موضوع چیه ولی نمیدونم چطور داده هارو کنترل کنم و به مرور بفرستم به table view
این ارور رو دریافت میکنم:
fatal error: unexpectedly found nil while unwrapping an Optional value
همونطور که میبینید هر بار که حلقه اجرا میشه مقدار جدید array به مقدار قبلی اضافه میشه و دفعه بعد که اجرا میشه باز مقدار اول و دوم و سوم رو باهم میاره که همین موضوع باعث میشه وقتی count من ۱۰۰۰ باشه بجای اینکه با هر بار اجرا خونه های آرایه رو یکی یکی خروجی بده مثلا بجای اینکه خروجیش بشه A , B , C تا ۱۰۰۰ خونه برسه
اینکارو میکنه A , AB , ABC , ABCD
حالا باید حلقه رو تغییر بدم یا میشه بجای .append از گزینه دیگه ای استفاده کنم؟
ممنون
let someArray = jsonDictunary
let posts = someArray ["posts"] as! NSArray
let count = posts . count
for i in 0 ..< count
{
DispatchQueue.main.async(execute:{ () -> Void in
self.array.append (( posts [i] as! NSDictionary)["title"]as! String)
self.tableViewMain.reloadData()
})
}
این کد رو جایگزین کنید ببینید فرقی میکنه ؟
let someArray = jsonDictunary
let posts = someArray ["posts"] as! NSArray
let count = posts . count
DispatchQueue.main.async(execute:{ () -> Void in
self.array.removeAll()
for i in 0 ..< count
{
self.array.append (( posts [i] as! NSDictionary)["title"]as! String) // اگر اشکالی باشه قطعا در این خط هست
}
self.tableViewMain.reloadData()
})
این یکی رو هم امتحان کنید:
let someArray = jsonDictunary
let posts = someArray ["posts"] as! NSArray
let count = posts . count
DispatchQueue.main.async(execute:{ () -> Void in
self.array.removeAll()
for i in 0 ..< count
{
self.array[i] = (( posts [i] as! NSDictionary)["title"]as! String) // اگر اشکالی باشه قطعا در این خط هست
}
self.tableViewMain.reloadData()
})
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .