我必须将数据从一个APP传输到另一个APP。当我第一次使用粘贴板传输数据时工作正常,但是第二次我从粘贴板获取数据。这个问题只发生在IOS7.1设备,在所有其他设备上都可以。这是一件奇怪的事。
我的代码如下。
// set Data
UIPasteboard* pasteBoard = [UIPasteboard pasteboardWithName:@"TEST" create:YES];
if(item == nil)
{
NSLog(@"** Set data is nil");
}
if(pasteBoard)
{
[pasteBoard setItems:[NSArray arrayWithObject:item]];
}
// Get Data
UIPasteboard* pasteboard = [UIPasteboard pasteboardWithName:@"TEST" create:NO];
NSDictionary* migrateInfo = nil;
if(pasteboard != nil && pasteboard.items.count > 0){
migrateInfo = [pasteboard.items objectAtIndex:0];
DEV_LOG(@"** Pasteboard have data");
}
当我第二次传输数据时,我将其作为migrateInfo对象获取nil值。
答案 0 :(得分:0)
在我的代码完成后,我对其进行了两处更改。
1)我从pasteboeard读取数据后删除了pasteboardData
可以使用 removePasteboardWithName方法删除粘贴板数据。
[UIPasteboard removePasteboardWithName:PASTE_BOARD_NAME];
2)我使用了 setValue函数而不是SetItems函数。 (要在粘贴板上放置NSString,NSArray,NSDictionary,NSDate,NSNumber,UIImage或NSURL对象等对象,请使用setValue:forPasteboardType:方法。)