UIPasteboard pasteboardWithName在IOS7.1中不起作用

时间:2014-04-24 04:51:52

标签: ios ios7.1 uipasteboard

我必须将数据从一个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值。

1 个答案:

答案 0 :(得分:0)

在我的代码完成后,我对其进行了两处更改。

1)我从pasteboeard读取数据后删除了pasteboardData

可以使用 removePasteboardWithName方法删除粘贴板数据

[UIPasteboard removePasteboardWithName:PASTE_BOARD_NAME];

2)我使用了 setValue函数而不是SetItems函数。  (要在粘贴板上放置NSString,NSArray,NSDictionary,NSDate,NSNumber,UIImage或NSURL对象等对象,请使用setValue:forPasteboardType:方法。)