31 lines
1.4 KiB
Mathematica
31 lines
1.4 KiB
Mathematica
|
// Turn the document contents into a single savable lump of data
|
||
|
- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError {
|
||
|
#pragma unused(typeName)
|
||
|
|
||
|
// Produce the data lump:
|
||
|
NSData * retval = [NSKeyedArchiver archivedDataWithRootObject:model];
|
||
|
|
||
|
// If the lump is nil something went wrong
|
||
|
// fill out the error object to explain what wrent wrong
|
||
|
if ( outError != NULL ) {
|
||
|
// The sender wanted an error reported. If there
|
||
|
// was a problem, fill in an NSError object
|
||
|
if (retval == nil) {
|
||
|
// The error object should include an (unhelpful)
|
||
|
// explanation of what happened
|
||
|
NSDictionary * userInfoDict = [NSDictionary dictionaryWithObjectsAndKeys:
|
||
|
@"Internal error formatting data", NSLocalizedDescriptionKey,
|
||
|
@"Archiving of data failed. Probably a bug.", NSLocalizedFailureReasonErrorKey,
|
||
|
@"There's nothing you can do.", NSLocalizedRecoverySuggestionErrorKey, nil];
|
||
|
|
||
|
*outError = [NSError errorWithDomain:LinearInternalErrorDomain
|
||
|
code:linErrCantFormatDocumentData
|
||
|
userInfo:userInfoDict];
|
||
|
} else {
|
||
|
// No problem. Don't supply an error object.
|
||
|
*outError = nil;
|
||
|
}
|
||
|
}
|
||
|
return retval;
|
||
|
}
|