nspasteboard ReadObjects循环块爆炸

nspasteboard ReadObjects循环块爆炸,nspasteboard,Nspasteboard,我试图在tableView中实现一个简单的拖放操作。但是,当我尝试使用ReadObjectsForClusses从粘贴板检索数据时,我得到一个运行时异常: “[\uu NSCFConstantString initWithBytes:length:encoding::]:发送到实例的选择器无法识别” 这是发生问题的acceptDrop方法。有人能帮我指出我做错了什么吗 (BOOL) tableView: (NSTableView *) view acceptDrop: (id ) i

我试图在tableView中实现一个简单的拖放操作。但是,当我尝试使用ReadObjectsForClusses从粘贴板检索数据时,我得到一个运行时异常:

“[\uu NSCFConstantString initWithBytes:length:encoding::]:发送到实例的选择器无法识别”

这是发生问题的acceptDrop方法。有人能帮我指出我做错了什么吗

  (BOOL) tableView: (NSTableView *) view
    acceptDrop: (id ) info
           row: (NSInteger) row
 dropOperation: (NSTableViewDropOperation) op
   {    

   NSArray *pBoardClasses = [[NSArray alloc] initWithArray:[NSArray arrayWithObjects:[NSStringPboardType class], [NSDragPboard class], nil]];
   NSPasteboard *board =[info draggingPasteboard];

   if(![board canReadObjectForClasses:pBoardClasses options:nil])
   {
    NSLog(@"No acceptable data format in pasteboard. Cannot perform this operation!");
    return NO;
   }

   NSArray * dFromPboard = [board readObjectsForClasses:pBoardClasses options:nil];

   }

使用
[NSString类]
而不是
[NSStringPboardType类]

另外:
[NSDragPboard类]
看起来不正确。删除此选项并测试它是否仅适用于
[NSString class]

NSArray *stringObjects = [pboard readObjectsForClasses:@[ [NSString class], [NSAttributedString class] ] options:@{}];
    if(stringObjects.count > 0) {
        NSString *myStr = stringObjects[0];
        //…
    }
//…