With help from the great posts here, I understand the error. But I need some clarification please.
Say my managed object context (schema) has 3 tables (entities), and say each entity had 3 attributes of which one attribute for each entry is NOT optional.
So now for the first time, my app creates a managed object for the first entity, filling its mandatory attribute; app has not created managed objects for the second and third entities yet - didn't have to yet. When I try to save the context at this point, I get error code 1570. Is it because I have not filled out values for the second and 3rd entities?
I am not sure if this helps you.
But The cocoa error 1570 means that mandatory fields are not filled in. So please make sure your mandatory fields are not nil.
iphone Core Data Unresolved error while saving
Yep it was a mandatory field that was not filled in. The post above showed me which field.
If you have previously run it on your device (or simulator) with the attribute set as mandatory and then changed it to optional, delete the app from the device before running again. That was the problem for my app.
Hope that helps someone! :-)
In my case, I was setting a mandatory BOOL property directly as YES or NO, but you should use
NSNumber numberWithBOOL
in order to make it work.
Related
Swift / iOS
Can anyone tell me if it is possible to specify the PFObject objectId value when creating new objects?
I've obviously attempted but the save fails. (which might just be the answer)
The reason I am asking is I wondered if anyone had found a "trick" that would allow me to specify.
I am using PFObject.saveInBackground { method to persist the new object.
No you can not. Parse sets the objectId on the server during the save operation.
The reason your operation is failing is because Parse is looking for an object on the server with the id that you are specifying and is then trying to update that object but it cannot find the object.
I've been struggling with an existing project which uses .plist to save the data from the user which is logged in.
On crashlytics I've found a problem which results in a crash. When a user updated his profile in the web-application it causes a crash in the application.
The error says it's because I'm trying to set a non-property-list object. But I've already tried to add all the fields into the .plist-file.
Here you can see the changed .plist
I'm not sure but I think there is something wrong with the value "street"
Thanks in advance!
Indeed, the problem might come from the 'street' object. Because according to your plist, it should be a 'text', but it seems to be an NSArray...
To get the text value you should do something like that :
NSString *streetString = ((NSArray *)[dict objectForKey:#"street"]).firstObject;
And save that value instead.
I'm having difficulty properly deleting an HKCorrelation object. If I delete it, I end up with separate entries for each entity, and also the original correlations. Additionally, trying to clean up each sample manually also fails. I'm doing nothing fancy. . .just calling: HKHealthStore deleteObject.
Anyone have a working example for this?
Deleting a correlation is not expected to delete the member objects of the correlation. Each object should be deleted individually. If attempting to delete the member objects is not succeeding, make sure you are not encountering an error. The app may not be authorized to delete objects of that type, for instance.
I have following Problem:
First up... i use MagicalRecord for the whole CoreData thing
I have two Entities: A and B
They have a relation between each other
I create one instance of Entity A
I create several instances ob Entity B and set the relation
I don't call [[NSManagedObjectContext defaultContext] save];
It's fine
The relation is ok... I can check it using the findByAttribute method
If I call this save then the relation is destroyed...
the same check using findByAttribute does not find results any more
I have absolutely no clue what I am doing wrong or if it's a bug in CoreData / MagicalRecord...
I made a sample project showing the problem.
https://github.com/bliblablo/MagicalRecordsProblem
You can see the problem by following this steps:
click "create"
click "add"
click "check"
see the log output for results
click "save"
click "check" again and see the problem in the log :)
Any help is really appreciated!!!
Thanks a lot!
Sounds like the problem I was having with temporary ObjectID's not getting refreshed in the default context.
See my answer on NSPredicate not executed for details.
If you haven't already sorted it out, try checking the ObjectID of the NSManagedObject instances at various points. Especially if you (or Magical Record) are using the object as part of an NSPredicate to do the later fetches.
I think this is not MR bug. It is a bug from core data. See this post.
http://wbyoung.tumblr.com/post/27851725562/core-data-growing-pains
I have a very strange error happening in an App that has been working for a long time.
I can no longer create one of my entities in my CoreData model.
When I create one particular entity in my model and try to print it using NSLog( #"%#", obj ), I get this strange message:
2011-11-08 13:03:05.936 iLearnFast[31541:15503] -[__NSCFNumber objectID]: unrecognized selector sent to instance 0xa069e20
When I loop over the attributes / relationships for this object and print them out, one particular one to one relationship returns a strange value from [obj valueForKey:]. The value it returns is the same pointer / object that is mentioned in the above error message.
I thought I might have been corrupting memory somewhere, but I inserted the code to create the entity at the very beginning of my executable as soon as datastructures are initialized, and I get the same problem. I am extremely confident that I have not made any memory errors at this point (and a memory error would be more random ... I can create thousands of objects, and always the same entity has the same problem with the same relationship, and no other entities ever have a problem).
After narrowing down the problem to this one relationship, I found that I could make the error go away by renaming the relationship to anything else. The relationship has been called "file" since my App was created.
I can make my code work again by renaming the property, although it messes up my automatic lightweight migration, but now I have to deal with figuring out how to do a more complicated migration.
If anyone has any ideas as to what might be going wrong, I would really appreciate it.
This is baffling me, and really feels like a bug in Apple's SDK.
I'm currently using XCode 4.2 and tried both the SDKs for both iOS5.0 and iOS4.3 and both had the same behaviour.
Ron
2011-11-08 13:03:05.936 iLearnFast[31541:15503] -[__NSCFNumber
objectID]: unrecognized selector sent to instance 0xa069e20
I guess you have a leak in your code. This line means that you trying to access objectID property which contains in your custom NSManagedObject, but for some reason that object no longer lives. Try to check your code on memory leaks.
I saw this same issue arise in a Swift project using Core Data. The issue only raised it's head when I pushed the app onto a device (it had been working fine in the simulator for some time).
The issue centred around a relationship between two entities. To illustrate see problem image:
After looking around SO for sometime I decided to rename the relationships, captain and player. See fix image:
Only after renaming both 'ends' of the relationship did the error go away.
I had same error message and in my case reason was that I had relation property teacher and created read-only property isTeacher.
This issue caused by Objective-C name conventions: CoreData was confused in getting teacher property. Instead of accessing real relation and giving me real object it taking isTeacher getter with BOOL type, cast it to NSNumber and try to deal with it like CoreData relation and call objectID.
After renaming isTeacher to isTeacherLicence problem gone.