私は辞書内に配置している NSData オブジェクトを持っています。次に、辞書をドキュメント ディレクトリに書き込みます。次に、すぐにファイルへの URL を uiactivityviewcontroller で使用できるようにして、メール アプリに添付できるようにします。
問題は、ユーザーがこのファイルをクリックしてアプリにインポートすると、NSData オブジェクト以外のディクショナリ内のすべてが使用可能になることです (他の NSString オブジェクトがあります)。NSData オブジェクトを保持する必要がある関連キーのオブジェクトの内部をテストすると、(null) が返されます。
関連するコードは次のとおりです (わかりやすくするために一部を簡略化していますが、基本的には同じコードです)。
NSDictionary *dictionaryItems = @{@"stringobj": @"string",
@"dataobj": dataobject};
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSURL *dictUrl = [NSURL fileURLWithPath:[docDir stringByAppendingPathComponent:@"myinfo.myappinfo"]]; //my app will open this file type
[dictionaryItems writeToURL:dictURL atomically:YES];
// I will include the dictURL in the activityitems array so it can be attached to the the email when the uiacitivityitemcontroller is presented
アプリが開いたら、ファイルから辞書をロードし、「dataobj」キーから nsdata オブジェクトを取得しようとしましたが、null が返されます。
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if (url !=nil && [url isFileURL]) {
self.importedDictionary = [NSDictionary dictionaryWithContentsOfURL:url];
NSLog("%@",[self.importedDictionary objectForKey:@"dataobj"]); //returns null.. why?
}
}
辞書に配置した NSData オブジェクトが存在しない理由がわかりません - 何か考えはありますか? どんな助けでも大歓迎です!