保存和删除 NSManagedObject 和 NSManagedObjectContext

2023-12-22

三个问题,但它们都是相关的。如果您愿意,我可以将它们分为三个问题,以便您获得更多学分。如果您愿意我这样做,请告诉我。

我有以下代码允许我访问 NSManagedObject

self.managedObjectContext = [(STAppDelegate *)[[UIApplication sharedApplication]  delegate] managedObjectContext];

NSError *error;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"LetsMeet" inManagedObjectContext:managedObjectContext]];
NSArray *objectArray = [managedObjectContext executeFetchRequest:request error:&error];
if(objectArray.count==0){
    letsMeet = (LetsMeet *) [NSEntityDescription insertNewObjectForEntityForName:@"LetsMeet" inManagedObjectContext:managedObjectContext];
    } else{
    letsMeet = (LetsMeet *)[objectArray objectAtIndex:0];
    }

上面的代码允许我保存和检索属性。即我可以访问 letMeet.attribute 来保存和获取。

问题 1:如何删除并启动一个全新的 ManagedObjectContext。即用户有一个他在场景之间填写的表格。当用户点击导航控制器上的“下一步”按钮时,每个场景的所有内容都会保存到 CoreData 中。经过几个屏幕后,用户想要取消表单。此时我想删除迄今为止保存的所有内容。请代码示例。

问题 2:假设用户即将读完表单并决定保存表单以供以后检索。如何将整个表单的副本保存为 Core Data 中的一个对象。请代码示例。

问题 3:稍后如何从 Core Data 中检索已保存的对象并显示所有用户已保存的内容?请代码示例。


  1. 要删除你只需要删除letsMeet对象来自NSManagedObjectContext.

    NSError *error;
    [managedObjectContext deleteObject:letsMeet];
    [managedObjectContext save:&error];

由于您始终只有一个对象,因此获取letsMeet不是问题。您可以按照您在代码中所做的那样进行操作。
Update:并且您不需要删除托管对象上下文。它只是一个处理你的物品的空间。问题末尾有更多解释。

2. 如果LetsMeet实体的建模方式是所有表单元素都是其属性LetsMeet,当您保存managedObjectContext创建后LetsMeet就像您在代码中所做的那样,这将被保存为单个对象。

3.您已经知道如何检索对象,因为这就是您在代码中所做的事情。因为您只使用一个对象,所以一切都变得容易。 在多个对象获取唯一对象的情况下,您应该实现一个主键(可能是 formID,即;向 LetsMeet 添加另一个属性),或者您应该知道objectId每个对象的谓词是,然后相应地设置提取请求的谓词。

NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:letsMeet];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"formId like %@", formId];
[request setPredicate:predicate];

NSArray *resultsArray =[managedObjectContext executeFetchRequest:request error:&error];

如果您的 formId 是唯一的,这将返回一个对象数组。

但是,如果您使用 core-data 仅处理一个对象,则可以使用NSUserDefaults或写入 plist 文件来执行此操作。这有点矫枉过正了。

Update:获取 NSManagedObject 的 objectId:

 [letsMeet objectId];

ManagedObjectContext 就像一个白板。数组内的对象、托管对象上下文内的对象,它们都是一样的。您可以更改对象、添加对象、删除对象等。唯一的事情是当您执行以下操作时对象的当前状态是什么[managedObjectContext save:],即写入磁盘。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保存和删除 NSManagedObject 和 NSManagedObjectContext 的相关文章

  • 可以获取位置,但无法获取航向

    我目前只使用模拟器 但我在 iOS 模拟器上快速使用 CoreLocation 时遇到问题 我得到此代码打印的位置更新 但从未得到标题 我不想当然 我正在尝试制作一个指南针类型的应用程序 它将显示目标的方位 class CompassVie
  • XCode 4.5 给我“SenTestingKit/SenTestKit.h”文件未找到,但适用于 4.4.1

    我刚刚安装了 XCode 4 5 它在我现有的项目之一上给了我一个 SenTestingKit SenTestingKit h 文件未找到错误 此错误仅发生在 XCode 4 5 中 但它在 4 4 1 上编译正常 我已经检查过SenTes
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • ios - 在哪里放置 s.static_framework = true

    我在 CocoaPods 中的级别为 0 当我使用pod install有一个错误说 The Pods App target has transitive dependencies that include static framework
  • 企业发行版在 Swift 应用程序中与 iOS8 配合不佳

    我在使用 swift 应用程序在 iOS 8 设备上运行 Enterprise 版本时遇到问题 如果我使用非企业帐户进行代码签名 它似乎工作正常 有人遇到这个问题吗 以下是我在尝试使用企业帐户运行构建以进行协同设计时在 iOS 设备上收到的
  • 如何将相机中的图像保存到 iPhone 图库中的特定文件夹?

    嘿 我是 iPhone 新手 最近我一直在尝试制作一个应用程序 基本上 我想要做的是 如果用户将从相机捕获任何图像 那么它应该保存在设备库中 我知道如何将照片保存在图库中 它对我有用 但我无法将所有捕获的图像保存到设备图库中的特定文件夹 例
  • iOS 上的 UIBezierPath 操作

    我从一条直线开始 我希望用户能够触摸并拖动该线 使其弯曲 实际上 他们有能力将线条操纵成波浪形状 我不确定从技术上实现这一目标的最简单方法 我首先创建了三次曲线的 UIBezierPaths 数组 目的是操纵控制点 但似乎一旦绘制了 UIB
  • 在 iOS 上使用 Web 服务的最佳方式?

    我想构建一个 iOS 应用程序 让您登录到网络服务 之后 应用程序将 当用户选择时 通过 https 发送登录名 密码以及请求的变量 例如 在请求 新闻更新 后 它将收到 XML 格式的请求信息 类似于
  • 适用于 IOS 和 Android 的支付网关 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个应用程序 用户必须在澳大利亚餐馆通过应用程序 android ios 付款 有两种付款方式 通过 PayPal 或 Visa
  • Parse.com 和 Facebook 登录,运行无限循环

    我将 Parse 和 Facebook iOS SDK 都更新到了最新版本 当我尝试使用 Facebook 登录时 我的应用程序崩溃了 从调试器中我可以看到它正在无限循环中调用 3 4 个方法 我的登录代码如下所示 void openSes
  • 自定义 UITableViewCell 选择样式?

    当我点击我的UITableViewCell 当我单击单元格时 背景部分 我的背景图像未覆盖的区域 会变成蓝色 另外 所有的UILabel单击时单元格上的 s 变为白色 这就是我想要的 然而 我不想要的是当我点击它时的蓝色背景 但如果我这样做
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • 使用 Interface Builder 创建 UIScrollView 的步骤

    我正在尝试使用 UIScrollView 但似乎有一些基本的事情我不理解 假设我想在我的 iPhone 应用程序中使用 UIScrollView 我有一个充满按钮的视图 尺寸为 320x700 显然 这对于 320x480 的 iPhone
  • 为什么这个谓词格式会变成 '= nil'

    有人建议这个线程 https stackoverflow com questions 40686005 nspredicate crash after swift 3 migration与我的问题完全相同 但是 我的应用程序没有崩溃 并且我
  • 错误:更改核心数据模型后架构armv7的重复符号

    我有一个使用核心数据框架的应用程序 我工作得很好 我刚刚更改了数据模型 向一个实体添加一个属性 当我尝试构建它时 出现错误 duplicate symbol OBJC METACLASS AccountFolder in Users XXX
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • 指定访问组时出现 KeychainItemWrapper 错误

    相当长一段时间以来 我一直在使用 KeychainItemWrapper 的 ARC 版本成功读取和写入私有钥匙串项目 我现在正在努力将我的 iOS 应用程序转换为使用共享访问组 以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串
  • 苹果企业程序分发问题[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这个问题涉及到Apple iOS 开发者企业计划 http developer apple com programs ios enterprise 我
  • UIWebView Bug:-[UIWebView cut:]:无法识别的选择器发送到实例

    In the UIWebView 如果包含文本的输入元素具有焦点 并且按下按钮导致输入失去焦点 则随后双击输入以重新获得焦点并从出现的弹出栏中选择 剪切 或 复制 或 粘贴 会导致这UIWebView因错误而崩溃 UIWebView cut
  • Swift C 回调 - Swift 类指针的 takeUnretainedValue 或 takeRetainedValue

    我有一些UIView or UITableViewCell 里面我有 C 回调 例如 CCallback bridge self observer data gt Void in let mySelf Unmanaged

随机推荐

  • 贝塞尔曲线在 HTML5 画布中绘制拉伸椭圆

    这种绘制椭圆的方法看起来干净而优雅 http www williammalone com briefs how to draw ellipse html5 canvas http www williammalone com briefs h
  • Rainlendar 如何使用 wxWidgets 实现透明度

    雷恩伦达尔 http www rainlendar net cms index php是一个很棒的跨平台日历程序 是用 wxWidgets 编写的 它是如何实现透明效果的呢 有谁有演示透明效果的示例代码吗 我的猜测是他们可能会使用wxScr
  • dllimport 无法找到 dll,即使它位于 PATH 中

    我使用 Dllimport DllName dll 我确信进程 PATH 环境变量中存在我的 dll 的路径 并且仍然 我收到 找不到 DllName dll 找不到 DllName dll 也可能意味着 DllImport 尚未找到 Dl
  • 删除滚动条但不删除滚动功能[重复]

    这个问题在这里已经有答案了 我知道你可以定义溢出 隐藏 在 HTML 正文上删除滚动条 但我希望仍然能够使用鼠标上的箭头或滚轮滚动 预先感谢您的任何帮助 编辑 感谢您有关悬停滚动条和自定义栏的所有建议 还要感谢您对删除滚动条影响用户体验的所
  • 捆绑包和文件访问

    我已向我的项目添加了一系列文件夹 使用 添加现有文件 选项 这会导致文件夹内容在 Xcode 中显示为蓝色文件夹 以下作品 NSString imageName NSString stringWithFormat File 03 image
  • PowerShell 范围标识符

    我是 PowerShell 新手 试图更好地理解范围 有没有办法从范围内识别范围 某些变量或函数可以给我某种范围名称或范围 Guid 或范围 Id 例如 我如何知道本地范围是否是全局范围 例如 我如何知道本地范围是否是全局范围 bool i
  • 如何验证传递给“PrincipalContext”的凭据

    这是后续我之前的问题 https stackoverflow com questions 50055073 testing a principalcontext using validatecredentialsnull null beha
  • ant 的 componentdef 错误

    我有一个相对较旧的 Grails 应用程序 它使用 ant 来构建应用程序 在测试服务器中 它构建没有任何问题 但是当我尝试在我的电脑上运行它时 我收到一致的错误 Caused by jar file C ant apache ant 1
  • Scala:理解参数多态性

    有什么区别 def drop1 A l List A l tail and def drop1 l List Int l tail 假设用法看起来像 drop1 List 1 2 3 何时应该使用其中之一 为什么 虽然我可以理解第二个例子
  • Swift“文本”不可用:自 iOS7 起已弃用 API。文本标签不起作用

    我一直有这个错误 我已经看到使用 textLabel text 回答了其他问题 但它在我的情况下不起作用 我是 swift 的新手 所以有人可以解释一下为什么以及如何解决这个问题 你需要打开包装textLabel通过使用 after tex
  • 将可变 Arc 引用传递给 hyper service_fn 处理程序时出现问题

    我一直在尝试以下 显示相关导入和代码 use std sync Arc Mutex use std thread use hyper rt self Future Stream use hyper service service fn us
  • 设置图例符号不透明度

    我正在绘制带有半透明 x 标记 20 alpha 的绘图 如何使图例中的标记以 100 不透明度显示 import matplotlib pyplot as plt plt plot date x xaxis y yaxis marker
  • C# 代码片段和汇编 TBB 有什么区别?

    据我了解 C 代码片段和 NET 程序集为模块化模板开发提供相同的功能 我们在 CME 中管理代码片段 在 Visual Studio 中管理汇编代码 但在模板生成器中使用相同的方式 在代码方面 我可以创建一个C 代码片段模板构建块 TBB
  • 更改 XSL 转换中的命名空间值?

    我不确定这是否可能 因为我对 XSLT 之类的东西非常陌生 但也许你们中的一些人可以在这里帮助我 这有点棘手 我在互联网上没有找到类似的东西 问题是我有一个输入 xml 其中声明了名称空间和所有内容 我只需要对其进行轻微更改 添加或删除属性
  • Django 静态文件应用程序帮助

    我对 Django 有一个小问题静态文件应用程序 https docs djangoproject com en dev ref contrib staticfiles 我已经添加了 django contrib staticfiles 到
  • React.js - Flux 与全局事件总线

    与全局事件总线相比 使用 Flux 有何优势 我认为调度程序就是所需要的 组件将带有数据的 用户事件 发布到调度程序 调度程序执行订阅商店的处理程序 处理程序发布 更新事件 以及商店的更新属性 调度程序执行订阅组件的处理程序 并使用存储的更
  • 在 python 中将 RAW 图像转换为 TIFF 但保留元数据

    我尝试将原始图像转换为 tiff 但我希望它保留元数据 这是我之前使用的代码 import rawpy imageio os with rawpy imread path as raw rgb raw postprocess imageio
  • Python 浮点格式

    我已经看到了一些与此相关的问题 但我读到的这些问题都没有帮助我真正理解为什么我想做的事情失败了 所以我有一堆浮点值 它们有不同的精度 有些是 0 1 其他是 1 759374 等 我想格式化它们 以便它们全部采用我尝试做的 0 000000
  • ilasm / ildasm 的 Java 字节码等效项

    对于 CIL MSIL 我可以在文本编辑器中编写代码并使用 ilasm ildasm 进行编译 反编译 我可以使用 Reflector 来查看 NET 类生成的 CIL 在Java世界中 javap c显示反汇编的字节代码 如何编译 Jav
  • 保存和删除 NSManagedObject 和 NSManagedObjectContext

    三个问题 但它们都是相关的 如果您愿意 我可以将它们分为三个问题 以便您获得更多学分 如果您愿意我这样做 请告诉我 我有以下代码允许我访问 NSManagedObject self managedObjectContext STAppDel