这里有一个交易:我有一个名为FieldFormVC的自定义UIViewController。为了呈现它,我将此代码称为:
FieldFormVC *fieldFormVC = [[FieldFormVC alloc] initWithFieldForm:(FieldForm *)[self getForm] andManagedObjectContext: managedObjectContext];
fieldFormVC.trackManager = self;
fieldFormVC.t
我无法将数据保存在核心数据中。我必须点击按钮在数据库中保存多个图书信息。当我点击按钮时,我调用该方法并将图书信息保存在数据库中。对于前三次点击,它很好地保存了图书信息,用户界面也响应良好。当我第四次单击按钮时,ui在保存结束时冻结
代码如下所示
+(void) storeBookInfo:(NSDictionary *) bookInfo inContext:(NSManagedObjectContext *) ctx {
AppDelegate *appDelegate = (App
我将尽可能简单地使用NSFetchedResultsController从核心数据中提取数据。我的cellForRowAtIndexPath如下所示
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell? {
var cell = tableView.dequeueReusableCellWithIdenti
我希望这是有意义的(我用IOS自学),我有一个coredata实体,其中除3个属性外的所有属性都是预加载的信息,将随应用程序一起提供。3个空属性供用户添加和保存自己的信息。我得到了所有这些工作,并认为“快乐的日子”,但后来我发现,当您在IOS中执行数据模型更新时,现有的数据都被删除了
因此,基本上,我希望有一种方法能够替换/更新预加载的属性,并保留用户创建和保留的3个属性。有办法做到这一点吗?是否将3个属性保存到单独的临时文件中,然后替换整个实体,然后将临时文件读回实体?如果是这样的话,我不知道
标签: Core Data
restkitnsfetchedresultscontroller
我有两个具有多对多关系的实体(元数据和价格)。实体元数据具有一个属性dataIsInvalid,用于使实体Price中的所有相关价格无效。我使用了一个NSFetchedResultsController来表示元数据,一个FRC来表示价格
FRCPrice的谓词是@“ANY metaData.dataIsInvalid==0”。当然,如果我更改元数据中的dataIsInvalid属性,则不会调用FRCPrice中的controllerDidChangeContent方法,而是调用FRC元数据中的方
给定的IdentificationAttribute在不同的情况下可能在本地和服务器中使用。我可以设置IdentificationAttribute不区分大小写,以便立即更新数据。如果IdentificationAttribute不唯一或不匹配,则它们不是真正唯一的标识属性,因此理想情况下您应该更正服务器
虽然可以通过子类化来更改缓存系统,但这并不是一件小事。因此,我将考虑在映射期间使用键路径对标识属性中的值运行uppercaseString
这是对苹果部分产品的测试,我在这里引用
从应用程序中另一个对象对托管对象的强引用开始
您通过托管对象上下文删除了托管对象
您保存了对对象上下文的更改。
此时,已删除的对象已变成故障。它不会被销毁,因为这样做会违反内存管理规则。
Core Data将尝试实现出现故障的托管对象,但由于该对象已从存储中删除,因此无法实现。也就是说,存储中不再有具有相同全局ID的对象
所以我设置了一个测试,看看这是不是真的
我使用MagicalRecord来避免一些创建MOC的麻烦,代码基于一个名为“People”
当我尝试访问包含CoreData获取请求的SwiftUI ContentView时,预览崩溃。想知道设置@environment的正确方法是什么,以便预览可以访问coredata堆栈。当构建到模拟器时,这可以很好地工作,但不使用PreviewProvider
import SwiftUI
struct ContentView: View {
@Environment(\.managedObjectContext) var managedObjectContext
@Fetch
Stack Overflow中有人建议我使用Core Data Editor来管理sqlite持久存储。然而,最新版本(3.0)每次启动时都会崩溃。较旧的版本会加载,但当我将配置指向持久存储和对象模型目录时,什么也看不到。也没有任何文件
有人能告诉我解决这个问题的正确地点吗?我试图找到一种比sqlite控制台更易于管理的方法来协调核心数据开发
谢谢您必须在核心数据编辑器中设置已编译的模型(以.moc结尾,而不是.xcdatamodel结尾)。您可以在应用程序包的resources文件夹中找到它
我正在试图弄清楚为什么insertNewObjectForEntityForName不起作用。我假设这与我的数据模型有关,但不能确定。Xcode不会报告任何错误,也不会崩溃。我得到的只是第一个输出到控制台的log语句
NSLog(@"Get here...");
Task *task = (Task *)[NSEntityDescription insertNewObjectForEntityForName:@"Task" inManagedObjectContext:insertionCont
我的app reousrce文件夹中有一个已填充的sqlite数据库。启动时,我想用这个sqlite db的数据预加载coredata存储。我在persistantStoreCoordinator方法中使用NSMigrationManager。这在第一次使用时效果很好,可以将数据附加到存储中。但它会在每次启动时再次附加数据,因此在第二次启动后,数据将被复制。我怎样才能解决这个问题?在数据库中,我会使用主键,数据模型中是否有类似的东西?或者我可以比较实体对象吗
感谢您的帮助,以下是我使用的方法:
标签: Core Data
many-to-manynsfetchedresultscontrollernspredicatensfetchrequest
这是我上一个问题的后续问题:
有一个关于这个问题的图表,下面是一个快速提醒:
公司----员工
我已经能够在每个实体中手动保存1个实体,并在NSLog中验证它们
我已经创建了一个列出所有公司的CompanyListPage。这个想法是,当你点击一家公司时,你会看到一个与该公司有合同的所有员工的列表
如下所示:
公司:
姓名:A
合同:
长度:33周
工资:20000
雇员:
姓名:鲍勃·琼斯
在我公司页面内的DidSelectRowatinex页面中,我有以下内容
-(void)tableV
有了核心数据,我可以在内存中保存和获取对象;但是,当我重新启动我的应用程序(在模拟器中)并获取结果时,会获取对象,但所有属性都为零。我已将所有协议方法包括在appdelegate中,并已将managedObjectContext初始化为:
managedObjectContext=[self-managedObjectContext]
in-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项
这是我在日志中得到的
正确:
正在获
我的应用程序已预先填充类别数据,其中包含图标图像及其名称。在下一个版本中,我需要本地化它的名称,这可能吗?在这里找到了方法,但这是唯一的方法?核心数据中没有内置“本地化”功能。因此,在单独的实体中添加本地化名称(如中所述)是一种可行的方法。核心数据中没有内置“本地化”功能。因此,将本地化名称添加到单独的实体中(如中所述)是一种可行的方法
标签: Core Data
many-to-manynsarraycontrollernspopupbutton
全部
实体:
[Library {title}] <-->> [Book {title}] <<-->> [Author {name}]
表格:
*按钮从NSArrayController获取内容[作者,无内容集]
选项]
**表从另一个NSArrayController[作者]获取内容
将contentset选项设置为Library.books]
问题:
如何将Author添加到Book.authors from Author实体?
(对任何书籍使用
我有一个tableview,我制作了一个带有两个文本字段的自定义单元格…我希望文本字段中的文本保存在核心数据中,因此我为此创建了核心数据类,我知道如何实现核心数据方法
我无法理解如何在tableview中显示单元格,以便用户输入文本,然后将其保存在核心数据中。根据我的理解,以下是步骤:
1-默认情况下,tableview加载并显示带有文本字段的自定义单元格
2-用户输入文本,点击回车键,他得到的数据保存在核心数据中
我的问题是如何执行第1步,我无法加载视图中的数据,因为还没有数据!,我必须先显示
我正在尝试使用核心图和绑定在核心数据中绘制数据。
我的核心数据模型:
我可以插入,所以我知道我的联系人是好的。。。但这在绑定处爆炸:
[<NSArrayController 0x6000001c40b0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key measuredate.
-(void)addPlotWithIdentifier:(NSString *)iden
标签: Core Data
nspredicatensfetchedresultscontrollernsmanagedobject
在我的NSFetchedResultsController中,我希望有一个NSPredicate,它只获取具有特定关系的对象
例如:
我有三个子类NSManagedObjects:飞行,飞机,电池
每个航班都有一架飞机。每个航班可以有几个电池对象
因此,当我获取Flight对象时,我尝试使用谓词:[NSPredicate predicateWithFormat:[NSString stringWithFormat:@“aircraft=%@”,aircraftObj]]
因此,我只想获取与特定飞
我有一个简单的coredata实体,看起来像这样
@interface Event : NSManagedObject
@property (nonatomic, retain) NSNumber id;
@property (nonatomic, retain) NSString * location;
@property (nonatomic, retain) id eventType; // this is a dictioary
@end
eventType属性是一个如下所示的
我很难检查NSPredicate字符串中的一个SensorDeredSet是否是另一个SensorDeredSet的子集
我可以通过下面的模块来实现结果:
request.predicate = [NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
NSOrderedSet *biggerSet = [object valueForKey:@"attributeName"];
retu
当您创建托管对象关系(即一对多)然后创建NSManagedObject子类时,您将对该关系进行如下编码:
@NSManaged var dogs: NSSet
但我发现你可以写:
@NSManaged var dogs: Set<Dog>
@nsvar狗:设置
在我看来,这更方便,因为你有一个类型集,在Swift中的转换非常冗长
编辑:
事实上,我发现您可以使用集合的insert和remove方法,这样就更容易了
我知道Swift自动从一些基础类到SWIFT类(即 NSArra
我对如何为特定的三个实体设计核心数据模型感到困惑——特别是它们之间的关系
“地点”是由名称(字符串)和地址(字符串)组成的实体
“腿”是由起点(地点)和终点(地点)组成的实体
“路线”是由任意数量的腿(腿)按特定顺序组成的实体
总之,路线由一系列有序的支腿组成,这些支腿本身只是表示两个位置之间的直线
如何在数据模型中建模支腿和放置实体之间的关系?每条腿正好有两个位置(起点和终点);任何地方都可能有无限多的腿,无论是起点还是终点
在Leg实体中添加两个关系,一个用于startPlace,另一个用于
在我正在开发的里程跟踪应用程序中,这些概念包括“地点”、“腿”和“路线”。从本质上说,路线是连接腿的集合,其中每条腿只是两个地点之间的一条直线(具有相关距离)
我在核心数据中建模路由分支关系时遇到问题,因为一条路由可能包含同一分支两次或两次以上。例如,一个人可以在给定的一天作为一条单一的、连续的旅行路径,从家到办公室、从办公室到工地、从工地到家、从家到办公室、从办公室到家。在这种情况下,“从家到办公室”的分支在路线中包含两次。但是核心数据在NSManagedObject子类中创建了多对多关系,作
我在一个项目中使用核心数据,它在iOS 8上的fetch上会中断,但在任何其他iOS版本上都不会。我得到的错误是:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath myId not found in entity <NSSQLEntity Entity id=1>'
它在do-语句中中断,不会抛出错误。在iOS 9.0+上,它也不会抛出任何错误。
我需要让它像
100 items with `date` == 13/01/2017
2 items with `date` == 14/01/2017
50 items with `date` == 15/01/2017
我认为唯一的方法是创建循环并每天执行fetch,以便fetch请求的数量等于给定范围内的天数。另一种解决方案是执行一次提取,然后过滤这个大数组。我说的对吗?对不起,我不明白你的问题。请你重新措辞/澄清一下好吗?我已经改变了我的问题。谢谢-我现在更明白了。但恐怕我认为您
我有一个核心数据条目,其中包含从API获取的数据库中存储的某些键和值。现在我想用更新后的值更新一些核心数据条目,因此我使用以下代码:
func updateAllRecords(responseArray: [Dictionary<String, String>]) {
for settingsObject in responseArray {
if #available(iOS 10.0, *) {
let keys = settingsObje
当我关闭我的应用程序,然后在重新加载应用程序时尝试将其保存到核心时,出现以下错误
错误:严重的应用程序错误。在核心数据更改处理期间捕获异常。这通常是NSManagedObjectContextObjectsIDChangeNotification的观察者中的错误-[\uu\NSSingleObjectArrayI compare:]:发送到实例0x600002291510的无法识别的选择器带有userInfo(null)
当我从模拟器上删除应用程序后,第一次运行应用程序fresh时,它工作正常,
这是我的代码,我试图在WidgetKit中列出核心数据中存储的数据,但它根本没有显示出来。我已经创建了应用程序组,数据会在预览时显示,但当我们将小部件添加到主屏幕时,什么都不会显示。我不确定我的做法是否正确
在WidgetKit中列出核心数据记录的最佳方式是什么
import WidgetKit
import SwiftUI
import CoreData
// MARK: For Core Data
public extension URL {
/// Returns a URL
我在尝试从核心数据获取“分页”实体时遇到了一些奇怪的情况
以下是我用于获取的代码:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"User"
inManagedObjectContext:self.ma
我的原始数据模型有一个实体“游戏”。我现在已经更新了模型,添加了一个实体“Match”,它可以引用多个游戏。我希望在我所有的旧游戏中添加一个匹配项,理想情况下,这将是一个非可选的关系
目前我将Match设置为可选,只需在应用程序中的每个旧游戏中添加一个Match:didFinishLaunching,在模型更新后启动。这是可行的,但我想知道这是否是最好的方法
我试着跟随教程,但是我被“StepOneEntityMigrationPolicy.m”的部分卡住了。我创建了一个NSEntityMigr
这是我的CoreData模型。这种关系是无序的
我希望此模型填充一对NSPOUP按钮,如下所示:
当选择团队弹出窗口时,玩家弹出窗口应填充所选团队的适用玩家,然后由用户选择
以下是我尝试过的:
我用CD moc创建了两个NSArrayController,TeamList和PlayerList,都设置为实体模式。对于我的绑定,我执行以下操作:
使用控制器键arrangedObjects将团队弹出内容绑定到团队列表
使用控制器键arrangedObjects和模型键路径teamName将团队弹
标签: Core Data
rowsnsfetchedresultscontrollersections
我试图显示一个包含两个部分的表视图。第一部分将始终有一行,第二部分将有与数据点一样多的行。我正在使用核心数据和以下表格视图:numberOfRowsInSection:method
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section == 0) {
return 1;
} else {
id &l
我只是从Swift开始,想知道游乐场是否可以访问核心数据。如果是这样,在将DB放入iOS项目之前,预先填充DB将非常方便。在iOS游乐场中,您可以成功导入CoreData,然后调用CoreData接口中定义的函数
我知道这已经被问了好几次了,但通常的解决方案似乎对我不起作用。我使用创建了一个CoreData实体和一个子类。语法作为类名。创建如下所示的新对象:
let object = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: CoreDataManager.sharedInstance.managedObjectContext) as User
println("-->\(o
在我将我的应用程序发送到应用商店之前,我喜欢用仪器检查它是否有内存泄漏和其他可疑的东西。有一个核心数据问题我似乎无法解决,因此我决定创建一个小型测试应用程序来说明这个问题
有什么问题吗?
在(子)NSManagedObjectContext中保存实体时,它将传播到其父NSManagedObjectContext。在此过程中,核心数据创建\u NSObjectID和NSTemporaryObjectID的内部实例。由于某些原因,这些实例被遗留下来,摆脱它们的唯一方法是重置父NSManagedObj
创建数据模型后,我尝试为实体创建一个NSManagedObject子类。在Xcode中,我单击实体。然后从编辑器菜单中选择CreateSManagedObject子类。问题在于,这些文件是在项目外部添加的。我无法指定它们是否应包含在项目目标中。截图如下:
这是一个新的Xcode功能。看到这个答案:谢谢@shallowThought。我最终只是在我的项目中创建了两个Swift文件,并从生成的两个文件中复制了数据。我强烈建议不要以任何方式修改生成的代码。如果可以手动创建文件,我建议使用链接答案中提
我正在尝试构建一个示例BBQ应用程序来学习SwiftUI(XCode 11 beta 5),但我无法理解如何从核心数据中的对象列表视图导航到对象的详细视图。Xcode没有任何帮助,主要是根据我的尝试弹出不相关的错误
我已经尽我最大的逻辑能力尝试应用状态、绑定、可观察对象等,但一直未能破解它
这是我的列表视图,它构建得很好,允许我导航到目的地(这只是一个以字符串形式包含id属性的视图):
但是如果我这样更改我的NavigationLink目的地:
NavigationView {
List
标签: Core Data
cloudkitnspersistentcloudkitcontainer
在开发过程中,我切换到了NSPersistentCloudKitContainer,并开始了一个可怕的过程,尝试测试尽可能多的场景,以确保没有人丢失任何数据
在一些测试中,我看到了如下错误:
<CKError 0x28033a310: "Partial Failure" (2/1011); "Failed to modify some records"; uuid = B6015357-50E0-40B3-949F-1557F59A23DB; con
我已经创建了一个保存在核心数据中的客户列表。我通过AddView添加了一些属性,现在我尝试使用不同的视图添加新属性。为了做到这一点,我知道我需要使用observedObject属性包装器,这样它就不会创建新的客户机,而是更新现有的客户机。代码如下:
import SwiftUI
import CoreData
struct TopicView: View {
@Environment(\.managedObjectContext) var managedObjectContext
let
如果使用给定示例尝试在macOS应用程序上删除CoreData,则该操作无效,因为.onDelete仅在IOS中工作。我如何在macOS上使用.deleteItems函数?the“.onDelete(…)”在macOS、IOS和MacCatalyst上工作。请在Apple开发者论坛上的问题中查看我的代码。
struct ContentView: View {
@Environment(\.managedObjectContext) private var viewContext
@FetchR
是否有任何方法可以对照集合中其他实体的属性值验证核心数据实体属性中更新的值
现在,我创建了一个具有一些默认值的实体,将其添加到arrangedObjects,然后让用户修改各种属性值。但是,我想检查一个特定属性,并确保数组中没有其他实体具有该属性的相同值。最好的方法是什么
非常感谢,,
Dany.手动检查只有几行代码具有快速枚举循环:
BOOL unique = YES;
for (NSManagedObject *obj in collection) {
if (obj.propert
假设用户以某种方式删除了我的应用程序的核心数据存储。(以前已与同步服务同步到Mobile Me。)
我如何告诉核心数据提取真相(或刷新)而不是快速同步?如果他们删除了持久存储,他们可能也删除了快速同步存储。即使他们没有这样做,应用程序也应该做一个缓慢的同步,并在下一次发布时从真相中提取所有信息
您不需要做任何特殊的事情,从同步的PoV来看,它是一个新的客户端联机进行同步
当然,我会先在开发环境中测试这一点以确认,但它不需要任何更改。我正在测试这一点,并删除了我的store+fast store,
我有一个核心数据EntityDescription,我在其中创建了数据。然后,我使用xcdatamodeld文件的编辑器更改了EntityDescription,添加了新的,删除了旧的
现在,我的任何核心数据代码都会导致此错误“用于打开存储的模型与用于创建存储的模型不兼容}”。详情如下。我该怎么办?我更喜欢删除数据模型中的所有内容并重新启动新模型
谢谢你的建议
reason=The model used to open the store is incompatible with the on
我有这样一个核心数据模型:
销售代表>客户>购买协议产品
我可以得到采购协议的实体描述,我可以得到关系(客户和产品)
但是,是否有可能同时获得销售代表,或者我必须通过客户实体获得销售代表
谢谢根据您的图表,销售代表与采购协议没有直接关系,它只通过客户链接。这意味着,SALES\u REP自己对PURCHASE\u AGREEMENT一无所知。因此,是的,您必须转到CUSTOMER的实体描述,并要求它提供它的relationshipsByName。我不知道您想在这里做什么,但递归查找实体上的关系、
标签: Core Data
nsmanagedobjectcontextnspersistentstore
我目前正在开发的应用程序有一个只读的核心数据库,里面充满了问题(供孩子们回答),我希望可以通过应用程序更新快速替换这些问题(如果与应用程序包中的版本不同,最好只替换用户文档文件夹中的sqlite后端数据库)
我还存储了由用户创建的数据,在替换问题数据库时,我不想丢失这些数据
在同一个应用程序中有两个持久性存储和数据模型,一个我可以替换,另一个通过更新保持持久性,是可行的(也是良好的做法)吗 是的。您可以只拥有两个独立的核心数据堆栈(两个持久存储、托管对象模型和托管对象上下文)。对一方做任何事都不
列表项
所以我试图在Swift中设置一个具有多个条件的请求。SQL等效于:
选择BOARDID
董事会
我不喜欢“someBoard”
我不喜欢“另一个董事会”
..
我有一个字符串数组,我试图遍历每个字符串来创建一个子预测,将其添加到一个compoundPredicate,然后使用该compoundPredicate创建一个获取请求:
let openBoards = ["someBoard", "anotherBoard", "etc"],
request = NSFetchReq
如果在键盘上单击return,我想保存数据(文本)。但它不起作用。
我想显示文本,它保存在表格视图单元格中,在下一次启动应用程序后也应该可用
我的代码:
func textFieldShouldReturn(textField: UITextField) -> Bool {
tableViewData.append(textField.text)
textField.text = ""
self.tableView.reloadData()
tex
我正在使用NSXMLParser解析大型kml文件(18MB),并同时存储核心数据中每个位置的坐标,我观察到的是,在解析3/4的文件内存堆积和应用程序崩溃后,内存没有释放。我尝试了stackoverflow上给出的大多数答案,但没有用。欢迎任何帮助
var currentElement : String = ""
var place:Place?
var polygon:Polygon?
var placeName = ""
var shouldAddCoordinates = fals
是否可以在不实际保存的情况下确定NSManagedObject是否有效
似乎应该有一个isValid函数,或者以某种方式请求NSManagedObjectContext对特定对象运行验证而不实际保存
我能想到的唯一解决方法是将对象拉入临时子上下文,“触摸”它,使其被视为已更新,然后尝试保存子上下文。但是这看起来很野蛮。你可以直接调用validateForInsert或validateForUpdate你看到键值编码中内置的验证函数了吗?参见?我认为CoreData会自动使用它们,但没有理由不能手
假设我们有两个核心数据实体:
实体栏
属性bar1
属性bar2
实体食品
属性foo1
属性foo2
许多关系栏
我想使用NSPredicateEditor搜索“具有带(bar1='term1'和bar2='term2')的条形图的任何Foo”。也就是说,同一条中有多个匹配项
使用某种自定义复合谓词,它有这样一个UI
图1
图2
我知道如何创建顶级NSPredicateEditorRowTemplates,以便根据条形图属性(Foo.Bar.bar1)搜索Foo。
但是这些都是
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 50 页