Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 通过AirDrop发送自定义文件类型_Ios_Objective C_Plist_Airdrop - Fatal编程技术网

Ios 通过AirDrop发送自定义文件类型

Ios 通过AirDrop发送自定义文件类型,ios,objective-c,plist,airdrop,Ios,Objective C,Plist,Airdrop,我正在构建一个Objective-C应用程序,它使用iOS中包含的空投功能。我试图发送的文件是一个.plist文件,出于某种原因,技术上被认为是一种自定义文件类型。当从我的Mac接收到一个.plist文件时,一切都很顺利,但是当我尝试发送时,空投立即失败,并且我能够在调试器中显示一个错误 它说: AirDrop: Invalid URL (no scheme) /var/mobile/Containers/Data/Application/AB771F7E-AFDB-4CB4-8D60-E1B6

我正在构建一个Objective-C应用程序,它使用iOS中包含的空投功能。我试图发送的文件是一个.plist文件,出于某种原因,技术上被认为是一种自定义文件类型。当从我的Mac接收到一个.plist文件时,一切都很顺利,但是当我尝试发送时,空投立即失败,并且我能够在调试器中显示一个错误

它说:

AirDrop: Invalid URL (no scheme) /var/mobile/Containers/Data/Application/AB771F7E-AFDB-4CB4-8D60-E1B62BAB8A62/Documents/Chicken.plist
后来:

Sender kSFOperationEventErrorOccured { Error = "Error Domain=SFOperation Code=-4 \"The transfer failed because there were no valid files to send.\" 
最后,错误的NSLocalizedDescription说:

UserInfo={NSLocalizedDescription=The transfer failed because there were no valid files to send.}
我不确定它为什么找不到文件,因为我在整个应用程序中使用类似的代码从该目录检索文件,而且一切正常。以下是用户按下共享按钮时调用的iAction方法中的代码:

recipeName = [[NSUserDefaults standardUserDefaults]
                        stringForKey:@"recipeName"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *appFolderPath = [paths objectAtIndex:0];
NSString *plistName = [recipeName stringByAppendingString:@".plist"]; //add ".plist" to the end of the recipe name
NSString *fileName = [appFolderPath stringByAppendingPathComponent:plistName]; //find plist


NSURL *url = [NSURL URLWithString:fileName];
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[url] applicationActivities:nil];

// Exclude all activities except AirDrop.
NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
                                UIActivityTypePostToWeibo,
                                UIActivityTypeMessage, UIActivityTypeMail,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo];
controller.excludedActivityTypes = excludedActivities;

// Present the controller
[self presentViewController:controller animated:YES completion:nil];

提前感谢

您需要一个文件URL。试着改变这个

NSURL *url = [NSURL URLWithString:fileName];

NSURL *url = [NSURL fileURLWithPath:fileName];