天道酬勤,学无止境

核心数据:打印实体的内容(Core-Data: Print contents of an entity)

问题

我将如何打印实体(例如客户)的内容?

我希望数据像表格一样,例如实体数据应该像这样打印:

名字 | 姓氏 | 电话号码 | 电子邮件 | 出生日期

我还需要在打印数据之前应用搜索谓词,例如 1984 年以后出生的打印成员

有人能告诉我应该怎么做吗?

谢谢!

回答1

我发现这个链接对我使用核心数据有很大帮助:http://iphoneinaction.manning.com/iphone_in_action/2009/09/core-data-part-3-retrieving-data.html

将实体转换为数组,循环数组并 NSLog 每个结果的数据。 例如:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"news" 
                                          inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"url=%@",theUrl];
[fetchRequest setPredicate:predicate];

NSError *error;
NSArray *items = [self.managedObjectContext
                   executeFetchRequest:fetchRequest error:&error];

for (news *theNews in items) {
    NSLog(@"Title: %@, Date: %@, News: %@", [theNews title], [theNews date], [theNews news]);
}

[fetchRequest release];

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 在 Xcode 8 和 Swift 3 中寻找有关修订后的 NSPersistentContainer 的清晰教程(Looking for a clear tutorial on the revised NSPersistentContainer in Xcode 8 with Swift 3)
    问题 我已经审查了苹果的: Xcode 8 发行说明: https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html 从 Swift 2.2 迁移到 Swift 2.3 或 Swift 3 https://swift.org/migration-guide/ macOS 10.12、iOS 10.0、tvOS 10.0 和 watchOS 3.0 中 Core Data 的新增功能 https://developer.apple.com/library/content/releasenotes/General/WhatNewCoreData2016/ReleaseNotes.html#//apple_ref/doc/uid/TP40017342-CH1-DontLinkElementID_1 还有许多其他的……但是 Apple 应该提供的一份文档 Core Data Programming Guide 尚未从 Swift 2 更新。 https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/FetchingObjects.html#/
  • 核心数据iPhone:找不到NSManagedObjectModel(Core-Data iPhone: could not locate an NSManagedObjectModel)
    问题 我正在使用Apple的CoreDataBooks示例项目作为核心数据的学习辅助工具。 我修改了应用程序,以便在应用程序加载时首先显示菜单页面-而不是Books tableview(RootViewController)。 我已经完成以下工作: 我在界面生成器中创建了一个菜单页面(只是一个带有按钮的视图) CoreDataBooksAppDelegate.h现在看起来像这样: // for the menu @class MenuViewController; @interface CoreDataBooksAppDelegate : NSObject <UIApplicationDelegate> { NSManagedObjectModel *managedObjectModel; NSManagedObjectContext *managedObjectContext; NSPersistentStoreCoordinator *persistentStoreCoordinator; UIWindow *window; UINavigationController *navigationController; //for the menu MenuViewController *viewController; } - (IBAction)saveAction:sender
  • 如何在核心数据实体中手动添加数据(How to add data manually in core data entity)
    问题 我第一次在Core Data上工作。 我刚刚为该实体创建了一个Entity和Attributes 。 我想添加一些行作为数据(你可以说我想在表中添加数据)。 早些时候,当我使用Sqlite ,我会使用Terminal添加数据。 但是在Core Data我找不到手动添加数据的方法。 我只想将数据添加到Context并将其显示在UITableView 。 我已经阅读了Core Data的文档,但它没有解释如何手动添加数据,尽管它解释了我如何以编程方式添加数据。 但我不需要以编程方式进行。 我想手动完成。 回答1 我对 CoreData 也很陌生,并且也在为此寻找解决方案。 我很高兴在这里找到一篇文章:http://iphoneinaction.manning.com/iphone_in_action/core-data 关于如何获取 CSV 文件和导入数据(查找核心数据,第 5 部分:预填充数据)。 这是我使用的代码: -(void)addData { NSString *paths = [[NSBundle mainBundle] resourcePath]; NSString *bundlePath = [paths stringByAppendingPathComponent:@"file.csv"]; NSString *dataFile = [[NSString
  • 在iPhone上为Core Data程序创建唯一的ID(Creating a unique id for a Core Data program on the iPhone)
    问题 我在弄清楚这些核心数据方面有些麻烦。 如何创建具有唯一ID的新条目? 在SQL中,我只将一个字段声明为自动递增字段。 我在这里看不到任何类似的东西,但是我可能会丢失一些东西。 我只想要一个自动递增的NSInteger字段,所以当我手动将项目添加到数据库时,我将获得对它们的某种形式的引用。 回答1 尽管我同意您的说法,但核心数据背后有一个ID机制。 ID确实是由Core-Data管理的,但是您可以使用以下方法检索它们: NSManagedObjectID *moID = [managedObject objectID]; 有关更多信息,请参见:核心数据编程指南 回答2 那不是CoreData的工作原理。 在CoreData中,您创建实体的实例。 每个实例都是唯一的。 然后,您可以根据需要检索和操作实例。 CoreData会为您解决持久性问题,包括唯一标识实例。 摆脱对传统关系数据库的了解。 CoreData是一项非常强大的技术,它提供的功能远不止数据库(如持久性)。 如果您接受它,它将节省许多代码行,并且性能非常好。 回答3 此类函数将为您的id属性返回下一个可用数字(它必须是整数属性)。 我称其为自动增量值生成器。 我仍然同意其他人的观点,即为此有objectID,但有时您只需要数字即可。 您可以将此函数放在实体的NSManagedObject子类中: +(NSNumber
  • 核心数据:删除实体所有实例的最快方法(Core Data: Quickest way to delete all instances of an entity)
    问题 我正在使用Core Data在本地保留Web服务调用的结果。 Web服务为“汽车”返回完整的对象模型-大概有2000辆(我不能使Web服务返回少于1辆或所有汽车。 下次打开我的应用程序时,我想通过再次调用所有汽车的Web服务来刷新Core Data持久副本,但是为了防止重复,我需要首先清除本地缓存中的所有数据。 有没有一种更快的方法来清除托管对象上下文中特定实体的所有实例(例如,所有类型为“ CAR”的实体),还是我需要查询它们的调用,然后遍历结果以删除每个实体,然后保存? 理想情况下,我只能说删除实体为Blah的所有内容。 回答1 iOS 9及更高版本: iOS 9添加了一个名为NSBatchDeleteRequest的新类,该类使您可以轻松删除与谓词匹配的对象,而不必将它们全部加载到内存中。 使用方法如下: 斯威夫特5 let fetchRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "Car") let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) do { try myPersistentStoreCoordinator.execute(deleteRequest, with
  • Core-Data: Print contents of an entity
    How would I print the contents of an entity e.g. customer? I want the data to be table like, e.g. the entity data should print like so: First Name | Last Name | Telephone Number | Email | DOB I also need to apply a search predicate before printing the data, e.g. print members born after 1984 Could anybody tell me how I should do this? Thanks!
  • 删除/重置核心数据中的所有条目?(Delete/Reset all entries in Core Data?)
    问题 您是否知道删除存储在核心数据中的所有条目的任何方法? 我的架构应该保持不变; 我只想将其重置为空白。 编辑 我正在寻找以编程方式执行此操作,以便用户可以基本上单击reset按钮。 回答1 您仍然可以使用NSFileManager:removeItemAtPath ::方法以编程方式删除文件。 NSPersistentStore *store = ...; NSError *error; NSURL *storeURL = store.URL; NSPersistentStoreCoordinator *storeCoordinator = ...; [storeCoordinator removePersistentStore:store error:&error]; [[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error]; 然后,只需添加回永久存储以确保正确创建它即可。 遍历每个实体的编程方式较慢且容易出错。 这样做的用途是,如果您要删除某些实体而不是其他实体。 但是,您仍然需要确保保留参照完整性,否则将无法持久保存所做的更改。 只需删除存储并重新创建它既快速又安全,并且可以肯定地在运行时以编程方式完成。 适用于iOS5 +的更新 随着iOS 5和OS X 10
  • 如何更新核心数据中的现有对象?(How to update existing object in Core Data?)
    问题 当我插入新对象时,我将使用以下代码: NSManagedObjectContext *context = [appDelegate managedObjectContext]; Favorits *favorits = [NSEntityDescription insertNewObjectForEntityForName:@"Favorits" inManagedObjectContext:context]; favorits.title = @"Some title"; NSError *error; if (![context save:&error]) { NSLog(@"Whoops"); } 如何更新核心数据中的现有对象? 回答1 更新就像创建一个新的一样简单。 要更新特定对象,您需要设置NSFetchRequest 。 此类等效于SQL语言中的SELECT声明。 这里有个简单的例子: NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setEntity:[NSEntityDescription entityForName:@"Favorits" inManagedObjectContext:moc]]; NSError *error = nil; NSArray *results
  • iOS:删除所有核心数据Swift(iOS: Delete ALL Core Data Swift)
    问题 对于如何快速删除所有核心数据,我有些困惑。 我创建了一个链接了IBAction的按钮。 单击按钮后,我将看到以下内容: let appDel: foodforteethAppDelegate = UIApplication.sharedApplication().delegate as foodforteethAppDelegate let context: NSManagedObjectContext = appDel.managedObjectContext 然后,我想出了各种方法来尝试删除所有核心数据内容,但似乎无法正常工作。 我已经使用removeAll从存储的数组中删除,但是仍然不能从核心数据中删除。 我假设我需要某种类型的for循环,但是不确定如何从请求中进行。 我尝试应用删除单行的基本原理 func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!) { let appDel: foodforteethAppDelegate = UIApplication.sharedApplication().delegate as
  • 自然语言处理-应用场景-问答系统(知识图谱)【离线:命名实体识别(BiLSTM+CRF>维特比算法预测)、命名实体审核(BERT+RNN)】【在线:聊天前后两句子相关性判断二分类(BERT+DNN)】
    一、背景介绍 什么是智能对话系统? 随着人工智能技术的发展, 聊天机器人, 语音助手等应用在生活中随处可见, 比如百度的小度, 阿里的小蜜, 微软的小冰等等. 其目的在于通过人工智能技术让机器像人类一样能够进行智能回复, 解决现实中的各种问题. 从处理问题的角度来区分, 智能对话系统可分为: 任务导向型: 完成具有明确指向性的任务, 比如预定酒店咨询, 在线问诊等等.非任务导向型: 没有明确目的, 比如算算术, 播放音乐, 回答问题. 我们的在线医生项目就是任务导向型的智能对话系统. 二、Unit对话API的使用 Unit平台是百度大脑开放的智能对话定制与服务平台, 也是当前最大的中文领域对话开放平台之一. Unit对注册用户提供免费的对话接口服务, 比如中文闲聊API, 百科问答API, 诗句生成API等, 通过这些API我们可以感受一下智能对话的魅力, 同时它也可以作为任务导向型对话系统无法匹配用户输入时的最终选择. Unit闲聊API演示: 用户输入 >>> "你好" Unit回复 >>> "你好,想聊什么呢~" 用户输入 >>> "我想有一个女朋友!" Unit回复 >>> "我也是想要一个女朋友~" 用户输入 >>> "晚吃啥呢想想" Unit回复 >>> "想吃火锅" 调用Unit API的实现过程: 第一步: 注册登录百度账户, 进入Unit控制台创建自己的机器人
  • 如何在 Swift 3 中将核心数据导出为 CSV?(How to Export Core Data to CSV in Swift 3?)
    问题 我想导出我的实体“日志”的所有数据。 我找到了这个代码示例:https://gist.github.com/kenechilearnscode/2d5d35f550f593332319 但这对我不起作用。 它不添加核心数据的数据,我得到的唯一输出是:“这是应用程序将导出的内容:日期、标签、类型”我的核心数据实体是具有属性的“日志”:日期(类型:日期)、label1(type:String) 和 typ(type:Double)。 如何将核心数据导出到 CSV 文件并通过邮件发送? 谢谢你的帮助 :) var logs : [Log] = [] func createExportString() -> String { var date: NSDate? = NSDate() var labe1: String? var typ: Double var export: String = NSLocalizedString("date, label, typ, \n", comment: "") for (index, log) in logs.enumerated() { if index < logs.count - 1 { date = Date() as? NSDate label = log.value(forKey: "time") as? String typ =
  • 用于开设商店的模型与用于创建商店的模型不兼容(The model used to open the store is incompatible with the one used to create the store)
    问题 我在xcode 3.2中创建了一个核心数据模型,并在Xcode 4.2中进行了升级,然后添加了NSManagedObject子类的新实体(请参阅新实体)。 首先,它看起来很奇怪,因为它与旧的不在同一个组中。 这是我的xcode 4.2上的图片(AlkitabDB是我在xcode 3.2中创建的图片,EndeDB是当前xcode版本(4.2)中的新图片: 其次,我照原样进行操作,然后以与第一个实体(旧的实体)相同的方式访问第二个实体(新的实体),并出现标题为错误的错误。 这是错误: 2012-01-16 21:13:38.496 iHuria[55953:207] Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x8829cd0 {metadata=<CFBasicHash 0x882a370 [0x1839b38]>{type = immutable dict, count = 7, entries => 2 : <CFString 0x8829b90 [0x1839b38]>{contents = "NSStoreModelVersionIdentifiers"
  • 用于开设商店的模型与用于创建商店的模型不兼容(The model used to open the store is incompatible with the one used to create the store)
    问题 我在xcode 3.2中创建了一个核心数据模型,并在Xcode 4.2中进行了升级,然后添加了NSManagedObject子类的新实体(请参阅新实体)。 首先,它看起来很奇怪,因为它与旧的不在同一个组中。 这是我的xcode 4.2上的图片(AlkitabDB是我在xcode 3.2中创建的图片,EndeDB是当前xcode版本(4.2)中的新图片: 其次,我照原样进行操作,然后以与第一个实体(旧的实体)相同的方式访问第二个实体(新的实体),并出现标题为错误的错误。 这是错误: 2012-01-16 21:13:38.496 iHuria[55953:207] Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" UserInfo=0x8829cd0 {metadata=<CFBasicHash 0x882a370 [0x1839b38]>{type = immutable dict, count = 7, entries => 2 : <CFString 0x8829b90 [0x1839b38]>{contents = "NSStoreModelVersionIdentifiers"
  • 使用实体框架管理实体访问和权限(Manage entity access and permissions with Entity Framework)
    问题 在使用 Entity Framework 4.1 的 Web 应用程序中,我们使用 SQL Server Membership 来管理用户访问。 然而,我们需要实现一组更精细的角色权限管理。 在数据库中,我们已经创建了相关表: - Roles - Permissions - UserInRole (roles per user) - RolesPermissions (permissions associated to a role) 使用某些核心实体的属性,我们通过 EF 在语义上限制访问,例如,给定特定用户,他/她只能看到相关的发货订单或固有数据。 现在我们想在其中注入权限,例如,客户可以查看和创建订单,而公司(这是两个不同的角色)只能查看其产品的订单并打印报告。 这个想法是在实体级别也使用属性作为权限,并在调用方法时检查当前用户是否拥有适当的权限。 例如: public void BeforeAdd() { // Get required permissions for the specific entity (Order as example) //Check that current user has permission of creating a new Order } 这种方法将由每个实体调用,允许在实体级别集中控制权限。 我们使用 MVC 作为前端
  • 核心数据:删除实体类型的所有对象,即清除表(Core Data: delete all objects of an entity type, ie clear a table)
    问题 之前曾有人问过这个问题,但是没有解决方案能够满足我的应用需求。 在我们设置的通信协议中,每次执行同步时,服务器都会发送一组新的所有客户。 之前,我们一直以plist的形式存储。 现在想使用核心数据。 可能有成千上万的条目。 单独删除每一个都需要很长时间。 有没有一种方法可以删除Core Data中特定表中的所有行? delete from customer sqlite中的此调用会立即发生。 在iPad1上,在Core Data中逐一逐一检查可能需要30秒钟。 关闭Core Data是否合理,即删除持久性存储和所有托管对象上下文,然后放入sqlite并对表执行delete命令? 在此过程中,没有其他活动在进行,因此我不需要访问数据库的其他部分。 回答1 戴夫·德隆(Dave DeLong)是几乎所有方面的专家,所以我觉得我在告诉耶稣如何在水上行走。 诚然,他的帖子来自很久以前的2009年。 但是,Bot发布的链接中的方法不一定是处理大型删除的最佳方法。 基本上,该文章建议获取对象ID,然后遍历它们,并在每个对象上调用delete。 问题在于,当您删除单个对象时,它也必须处理所有关联的关系,这可能会导致进一步的提取。 因此,如果您必须像这样进行大规模删除,建议您调整整个数据库,以便可以隔离特定核心数据存储中的表。 这样,您可以删除整个存储,并可能重新构造您想保留的小部分。
  • 使用 NSDocument 时如何将故事板视图绑定到核心数据实体?(How do you bind a storyboard view to a Core Data entity when using NSDocument?)
    问题 我正在构建一个使用核心数据、NSDocument、故事板和 Cocoa 绑定的 OS X 应用程序。 我的期望是发生以下情况: 创建了一个MyDocument实例( NSDocument子类)。 MyDocument创建一个代表文档数据的 Core Data NSManagedObjectContext 。 MyDocument通过其标识符从故事板实例化一个NSWindowController 。 在故事板中,窗口控制器包含显示和编辑文档的DocumentEditorViewController ( NSViewController子类)。 在故事板中, DocumentEditorViewController有一个NSArrayController ,它绑定到MyDocument的托管对象上下文。 在故事板中, DocumentEditorViewController有一个绑定到NSArrayController的表视图。 通过这种方式,UI 中的任何更改都会一直到NSManagedObjectContext ,而无需任何胶水代码。 我希望这很简单,因为我相信我正在以预期的方式使用这些技术。 但是我一直无法让绑定工作,特别是在第 5 步和第 6 步。我发现的所有项目模板和示例项目要么不使用核心数据,不使用故事板,要么不使用NS文档。 哪些对象应该绑定到哪些?
  • 5. 彤哥说netty系列之Java NIO核心组件之Channel
    你好,我是彤哥,本篇是netty系列的第五篇。简介上一章我们一起学习了如何使用Java原生NIO实现群聊系统,这章我们一起来看看Java NIO的核心组件之一——Channel。思维转变首先,我想说的最重要的一个点是,学习NIO思维一定要从BIO那种一个连接一个线程的模式转变成多个连接(Channel)共用一个线程来处理的这种思维。1个Connection = 1个Socket = 1个Channel,这几个概念可以看作是等价的,都表示一个连接,只不过是用在不同的场景中。如果单从阻塞/非阻塞的角度来看的话,IO可以分成两大类,一类是Blocking IO,一类是Non-blocking IO,像IO五种模型中的后四种其实都可以看作是非阻塞型IO,只是各自使用的手段不相同罢了。在Java中,我们说的非阻塞IO或者说NIO(New IO)主要是指多路复用IO,底层可以使用select/poll/epoll等技术实现。另外,在Java1.7的时候引入了NIO2,这个主要是指异步IO模型,也就是我们常说的AIO,底层完全使用异步回调的方式来实现。但是,由于AIO这项技术在linux操作系统上还不太成熟,所以我们通常也不会说太多关于这方面的内容。在后面我们学习Netty的时候会再次讲到这三种IO模型,可以看到Netty是完全支持三种IO的,但是它把OIO(BIO
  • 在 Swift 3 中删除核心数据实体中的所有数据(Deleting all data in a Core Data entity in Swift 3)
    问题 有没有办法批量删除存储在核心数据中所有实体中的所有数据? 我在 iOS 9 或 10 的某个地方读到,苹果引入了一种批量删除的方法,但我似乎找不到任何关于它的好信息。 最终,我只需要一个通过实体并删除其中所有数据的函数。 看起来它应该足够简单,但事实证明它的文档/教程非常难以找到。 有什么想法吗? 编辑 我将以下代码添加到附加到按钮的 IBAction 中: @IBAction func clearAllData(_ sender: AnyObject) { let fetch = NSFetchRequest<NSFetchRequestResult>(entityName: "PLProjects") let request = NSBatchDeleteRequest(fetchRequest: fetch) //get the data from core data getPLData() //reload the table view tableView.reloadData() } 然而,这似乎不起作用。 如果我关闭项目并重新打开它,数据仍然存在。 我假设这也是表视图不更新的原因,因为数据实际上并未被删除。 回答1 您正在考虑在 iOS 9 中添加的NSBatchDeleteRequest 。创建一个这样的: let fetch = NSFetchRequest
  • 如何在 Perl 中转义 XML 文档的文本?(How can I escape text for an XML document in Perl?)
    问题 任何人都知道任何 Perl 模块来转义 XML 文档中的文本? 我正在生成 XML,其中将包含用户输入的文本。 我想正确处理文本,以便生成的 XML 格式正确。 回答1 我个人更喜欢 XML::LibXML - libxml 的 Perl 绑定。 优点之一 - 它使用可用的最快的 XML 处理库之一。 以下是创建文本节点的示例: use XML::LibXML; my $doc = XML::LibXML::Document->new('1.0',$some_encoding); my $element = $doc->createElement($name); $element->appendText($text); $xml_fragment = $element->toString(); $xml_document = $doc->toString(); 而且,永远不要手动创建 XML。 当人们发现你的所作所为时,这对你的健康有害。 回答2 也可以使用 XML::Simple escape_value,但不建议在新程序中使用 XML::Simple。 请参阅此帖子 17436965。 可以使用正则表达式(从escape_value 复制)完成手动转义: $data =~ s/&/&/sg; $data =~ s/</</sg; $data =~ s/>/>/sg;
  • 还不会springboot,阿里p8大牛一份385页pdf直接甩在脸上,给我啃
    第一章 Java EE简介 Java EE 有相应的规范实现,包括但不限于: Web 支持事务支持消息服务数据库持久层ContainerJWSJAX-RSJNDIJAXP/JAXBJAX-RPCJACCJava EE Application Server 所有这些规范和技术组成Java EE架构: Java EE的缺点: 过于复杂;追求分布式;不能及时与流行开源技术结合;Java EE 应用服务器收费。 spring的提出,核心功能仅仅只是Aop和IoC,发展如火如荼之后也有缺点,spring boot应运而生。 第二章 spring boot基础 JDK安装、maven配置、IoC与bean容器、注解、AOP示例。 第三章 MVC框架 Ant通配符:*: 匹配任意字符;**:匹配任意路径;?:匹配单个字符;如果一个请求,有多个@RequestMapping可以匹配,通常是更具体的匹配会去响应这个请求:有通配符的优先级低于没有通配符的;有'**'低于有'*'; consumes & producesconsumes 意味着请求的HTTP头的content-type的媒体类型,带错content-typ的请求会报错:there was an unexpected error(type=unsupported content type, status=415), content