我有以下测试,不及格
NSString * expectedValue = @"achilles";
UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:@"pb1" create:YES];
pasteboard.persistent = YES;
pasteboard.string = expectedValue;
STAssertEqualObjects(expectedValue, [pasteboard string], @"get written value from pasteboard");
[pasteboard setString:expectedValue];
STAssertEqualObjects(expectedValue, [pasteboard string], @"get written value from pasteboard");两个断言都失败,
'achilles' should be equal to '(null)'我是错误地向粘贴板写入,还是从粘贴板读取,还是两者都有?
发布于 2014-07-21 21:52:23
我假设问题如下:
UIPasteboard的string属性定义为(see the docs)
@property(nonatomic, copy) NSString *string; 这意味着如果你给它分配一个字符串,它将被复制,即一个新的对象被创建。当您重新读取它并将其与原始对象进行比较时,比较肯定会失败。
发布于 2014-07-17 13:03:27
如果您正在从UIPasteBoard中写入或读取字符串,则可以通过访问
[UIPasteboard generalPasteboard].string = @"your string";
NSString *str = [UIPasteboard generalPasteboard].string];发布于 2014-07-17 13:25:39
对于读写NSString,你可以使用通用的粘贴板。
有两种简单的方法来...
//Method 1
NSString * str=@"your String";
UIPasteboard * pasteboard=[UIPasteboard generalPasteboard];
[pasteboard setString:];
//Method 2
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[pasteboard setData:data forPasteboardType:(NSString *)kUTTypeText];你可以像下面这样读 NSString
UIPasteboard * pasteboard=[UIPasteboard generalPasteboard];
//Method 1
NSLog(@"Text =%@",[pasteboard string]);
//Method 2
NSData * data = [pasteboard dataForPasteboardType:(NSString*)kUTTypeText];
NSString * str =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"str =%@",str);有关更多信息,请访问refer this Blog
https://stackoverflow.com/questions/12437412
复制相似问题