Does NSMutableDictionary now truncate data as a string, or return ellipses for long data? I use this feature to save a plist with different colors in it. This has worked fine (with minor modifications) since around 2005.
But last month, I think after an OS update, I noticed all of my data was starting to get corrupted. I've narrowed it down to this. When I run this code...
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
NSError *error = nil;
[dict setObject:[NSKeyedArchiver archivedDataWithRootObject:[NSColor redColor] requiringSecureCoding:NO error:&error] forKey:@"backdropColor"];
NSString *test = [dict description];
Note that before MacOS 10.13, you can use this code, which has the same bug.
[dict setObject:[NSArchiver archivedDataWithRootObject: [NSColor redColor]] forKey:@"backdropColor"];
When I run either, I get the following result:
backdropColor = {length = 3576, bytes = 0x62706c69 73743030 d4010203 04050607 ... 00000000 00000d88 };
See the ... ? That's not supposed to be there. It used to fill in that ... with all of the data.
I can't find any documentation that explains a change, and while this code has remained unchanged for years, it's now corrupted months of work for one of my users already.