- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从服务器获取对象“新闻”,存储它们,并将它们显示在 UITableView 中。我成功地完成了 HTTP 请求(使用 Alamofire),使用 POJO 进行映射(使用 ObjectMapper),但是我在 CoreData 部分遇到了一些麻烦...
我的问题是我的表“NEWS”中存储了 20 行,但是当我获取所有新闻时,我有 40 行,实际上是 20 行实际行的两倍。为什么?
class NewsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var mTableView: UITableView!
let newsCellIdentifier = "NewsCell"
var dataStack: DATAStack?
var newsList = [News]()
var newsListOfAlamofire = [News]()
override func viewDidLoad() {
super.viewDidLoad()
self.dataStack = DATAStack(modelName: "UdAMobile2")
let url = "xxxxxxxxxx"
Alamofire.request(.GET, url, parameters: ["service" : "news"])
.responseArray { (response: [News]?, error: NSError?) in
if let response = response {
for oneNews in response {
self.newsListOfAlamofire.append(oneNews)
}
}
//self.saveNewsInDatabase()
self.getDatasFromBD()
self.mTableView.reloadData()
}
}
func saveNewsInDatabase() {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedObjectContext = appDelegate.managedObjectContext!
for news in newsListOfAlamofire {
var newsToSave = NSEntityDescription.insertNewObjectForEntityForName("News", inManagedObjectContext: managedObjectContext) as! News
newsToSave = news
var error : NSError? = nil
if !managedObjectContext.save(&error) {
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
}
}
func getDatasFromBD() {
super.viewWillAppear(true)
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
let sortDescriptor = NSSortDescriptor(key: "datePublication", ascending: false)
var sortDescriptorArray :NSArray = [sortDescriptor]
let fetchRequest = NSFetchRequest(entityName:"News")
fetchRequest.sortDescriptors = sortDescriptorArray as [AnyObject]
var error: NSError?
let fetchedResults = managedContext.executeFetchRequest(fetchRequest, error: &error) as? [News]
if let results = fetchedResults {
newsList = results
println("Récupération de \(fetchedResults!.count) news depuis la base")
} else {
println("Could not fetch \(error), \(error!.userInfo)")
}
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.newsList.count;
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let url = NSURL(string: self.newsList[indexPath.row].lien!)
UIApplication.sharedApplication().openURL(url!)
self.mTableView.deselectRowAtIndexPath(indexPath, animated: true)
}
//MARK - My Implementation
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
return newsCellAtIndexPath(indexPath)
}
func newsCellAtIndexPath(indexPath:NSIndexPath) -> NewsCell {
let cell = self.mTableView.dequeueReusableCellWithIdentifier(newsCellIdentifier) as! NewsCell
setTextForCell(cell, indexPath: indexPath)
setImageForCell(cell, indexPath: indexPath)
return cell
}
func setTextForCell(cell:NewsCell, indexPath:NSIndexPath) {
let news = newsList[indexPath.row] as News
if var label = cell.mLabelRestaurantName {
label.text = news.titre
cell.mLabelPeriode.text = news.periode
}
}
func setImageForCell(cell :NewsCell, indexPath :NSIndexPath) {
var url = newsList[indexPath.row].urlImg
if url == nil {
url = ""
}
cell.mImageView.kf_setImageWithURL(NSURL(string: url!)!, placeholderImage: UIImage(named: "uda.png"))
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 80
}
最佳答案
也许您触发了两次请求?你永远不会删除条目newsListOfAlamofire
或重新分配变量。
关于ios - 我的 fetchRequest 返回的数据不在我的数据库中,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31787286/
Xcode beta 5 推出 @FetchRequest对于 SwiftUI。 我有一个 View ,它有一个 @FetchRequest . NSFetchRequest是在管理器中创建的,该管理
带有实体 Node 的核心数据模型有 name , createdAt , 多对多关系 children和一对一的关系parent (都是可选的)。使用 CodeGen 类定义。 使用 @FetchR
我试图将我的@fetchrequest属性移到辅助类,而不是View,但是每次尝试这样做时,都会收到一条错误的指令错误。 谁能帮我? 这是我的代码的示例: ViewModel: class ViewM
我的 SwiftUI 项目中有以下代码 @FetchRequest private var step: FetchedResults private var processID: UUID priva
我有一个使用 @FetchRequest 显示来自 CoreData 的对象的列表,我想为用户提供一个栏按钮,单击该按钮将过滤显示的列表。如何更改 @FetchRequest 谓词并动态重新运行它以使
我的 SwiftUI 项目中有以下代码 @FetchRequest private var step: FetchedResults private var processID: UUID priva
当我向 CoreData 的一个实体插入数据时,所有行均已成功插入(已保存)。 但是当我尝试使用 FetchRequest 获取数据时,即使插入的行数为 3 或 4 或任何值(超过 1),也只会收到一
更新以下问题:我们能够通过父子关系使用父实体获取请求来查询子实体。示例查询如下: NSPredicate *myPredicate = [NSPredicate predicateWithForm
我正在尝试从我的数据库中获取请求。但我的回应为零。获取是可以的,因为当我使用这种方法时,我得到“有时”值。 (我知道我在数据库中有数据)。我认为这在某种程度上与线程问题有关,或者因为我正在使用多上下文
如何按土耳其语对 fetchResult 进行排序,土耳其语字符在结果末尾排序。 let managedObjectContext = (UIApplication.shared.delegate a
我有一个扩展 NSManagedObject 的静态函数得到这样的对象...... NSManagedObject.get(type: MYUser.self, with: ("id", "SomeU
使用方法 @FetchRequest为了检索单个对象而不是 FetchedResults ?在我看来,我只需要一个对象。是否有另一种方法来执行查询并根据唯一的属性值(例如 ID)获取单个对象? str
我有一组数据,其中一个属性(固件)是一对多关系。 如果我想获取固件 id 为 1 的任何记录,我可以使用创建谓词 @"(ANY Firmware.FID==1)" 然后我有另一组条件,可以使用进一步细
在我的应用程序中,我有两个 CoreData 实体,它们的关系是一对多的:人物 -> 主题 我正在使用列表呈现人们的名字 struct PeopleListView: View { @Fetc
我有 2 个实体: 出席: import Foundation import CoreData extension Attendance { @NSManaged var date: NSDa
更新说明:我正在使用 Big Nerd Ranch CoreDataStack如果你们想知道的话。 我已经为这个具体问题苦苦挣扎了一段时间了。基本上我试图从 CNContactStore 获取联系人并
我正在尝试找到一种方法来预测给定日期第一次发生的事件。假设一个事件在一天中发生多次(范围 1-16),我只希望它返回第一次出现的事件,然后在第二天查找下一个第一次出现的事件。 最佳答案 您无法通过一个
所以我有两个实体。列表和评论。一个列表可以有多个关联的评论。 extension Listing { @NSManaged var listingTitle: String? @NSM
我在尝试过滤 fetchRequest 时脑子崩溃了。 我能够获取实体每条记录的完整详细信息,但我只想要当前 indexPath 处记录的详细信息。 这是我的代码目前所在的位置: -(void) fe
我正在尝试获取按其属性之一(单词)过滤的实体列表,为此我使用了 fetchedResultsController,一切看起来都正常。该列表已加载并显示在我的 tableView 上,我什至可以对列表进
我是一名优秀的程序员,十分优秀!