我有几个文本文件想要在 2 个应用程序之间传输。 (即同一应用程序的免费和付费版本)。
我正在使用 UIPasteboard 来执行此操作。文件的内容作为 NSArray 保存在内存中,因此我想将这些 NSArray 复制到粘贴板(精简版),并从粘贴板(完整版)读取它们。
由于某种原因,无法从粘贴板读回数据。数据作为 NSData 对象返回,而不是 NSArray,我认为这意味着它不是我正在使用的粘贴板类型所需的格式,即“public.utf8-plain-text”。
当我用这种粘贴板类型读/写 NSString 时,它工作得很好。
我搜索了 Apple 文档等,看看是否有不同的类型我应该用于 NSArrays(或其他属性列表对象),但画了一个空白。
写入粘贴板:(下面的pDataOutput是字符串数组,文件内容):
NSMutableArray *lArrayCopy = [gGlobalData.cPasteBoard.items mutableCopy];
[lArrayCopy replaceObjectAtIndex:pDataFileIdx
withObject:[NSDictionary dictionaryWithObject:pDataOutput
forKey:@"public.utf8-plain-text"]];
gGlobalData.cPasteBoard.items = lArrayCopy;
[lArrayCopy release];
从粘贴板上读取:
NSArray *lPBItems = [pPasteBoard valuesForPasteboardType:@"public.utf8-plain-text"
inItemSet:nil];
NSLog(@"PB Items = NSArray of count %d", lPBItems.count);
以上返回:
PB Items = NSArray of count 0
如上所述,如果写为 NSStrings,它会正确地将数据返回为 NSStrings。
任何帮助将非常感激。
谢谢
斯蒂芬·C