我在iPad上的应用程序间通信存在问题(直到最近)一直有效。我正在使用http://enharmonichq.com/sharing-data-locally-between-ios-apps/中的标准粘贴板代码,这是一个很好的教程并且运行良好。
我的问题是,现在我的“查看器”应用在打开时没有收到粘贴板。
代码:
+(void)handleSendPasteboardDataURL:(NSURL *)sendPasteboardDataURL
completionHandler:(ENHAppDataSharingHandler)completionHandler;
{
NSString *query = [sendPasteboardDataURL query];
NSString *pasteboardName = [sendPasteboardDataURL fragment];
NSAssert2(([query isEqualToString:kReadPasteboardDataQuery] && pasteboardName),
@"Malformed or incorrect url sent to %@. URL: %@",
NSStringFromSelector(_cmd), sendPasteboardDataURL);
AppDataPackage *dataPackage = nil;
NSError *error = nil;
NSString *pasteboardType = kAppDataPackageUTI;
UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:pasteboardName create:NO];
if (pasteboard)
{
NSData *data = [pasteboard dataForPasteboardType:pasteboardType];
if (data)
{
dataPackage = [AppDataPackage unarchivePackageData:data];
}
else
{
NSDictionary *errorInfoDictionary = @{NSLocalizedDescriptionKey: [NSString stringWithFormat:
@"%@ %@", NSLocalizedString(@"No data found on pasteboard with name:", nil),
pasteboardName]};
error = [NSError errorWithDomain:AppDataSharingErrorDomain
code:ENHAppDataSharingErrorTypeNoDataFound
userInfo:errorInfoDictionary];
}
[pasteboard setData:nil forPasteboardType:pasteboardType];
[pasteboard setPersistent:NO];
}
else
{
NSDictionary *errorInfoDictionary = @{NSLocalizedDescriptionKey:
[NSString stringWithFormat:@"%@ %@",
NSLocalizedString(@"No pasteboard found for name:", nil), pasteboardName]};
error = [NSError errorWithDomain:AppDataSharingErrorDomain
code:ENHAppDataSharingErrorTypeNoPasteboardForName
userInfo:errorInfoDictionary];
}
completionHandler(dataPackage, error);
}
以前在设备上运行良好,但在模拟器上运行良好。但现在在设备上进行测试时,呼叫......
[UIPasteboard pasteboardWithName:pasteboardName create:NO];
...失败,粘贴板为零。 (粘贴板名称有效)
正如我所说,这在模拟器上运行正常但在设备上没有。
所以我的问题是,是否有其他人有相同问题的经验? 有什么建议吗?
我的源应用程序正在运行,因为其他粘贴板'测试'应用程序可以接收数据并在设备上工作。这只是我的主要接收应用程序未能得到有问题的粘贴板。
我对这个问题有点了解。
这是运行iOS7.1.2并在xcode 5.1.1上开发
由于