2014-10-30 73 views
0

我不明白爲什麼Mac Pro上的xcode 6.1(6A1052d)將NSURL與MacBook Pro上的Xcode 6.1(6A3117)不同。例如Xcode 6.1(6A1052d)NSURL在不同的Mac上的奇怪行爲

的MacPro:

if ([[pb types] containsObject:NSURLPboardType]) { 

    NSURL *fileURL = [NSURL URLFromPasteboard:pb]; 
      NSLog(@"fileURL Drop %@", fileURL); 

    } 
    return NSDragOperationCopy; 

OUTPUT:fileURL拖放文件:///.file/id=6571367.27666129

的MacBook Pro:

if ([[pb types] containsObject:NSURLPboardType]) { 

    NSURL *fileURL = [NSURL URLFromPasteboard:pb]; 
      NSLog(@"fileURL Drop %@", fileURL); 

    } 
    return NSDragOperationCopy; 

OUTPUT:fileURL拖放文件:/ // Users/su .../Desktop/Hardsoul%20feat。%20Candy%20Dulfer%20-%20Lust%20For%20Life%20(Hardsoul%20Mix).mp3 ...

正如你所看到的,同樣的方法將不同的URL作爲普通URL返回,其他作爲文件ID。所以請幫助理解發生了什麼。通常我在同一個項目中同時使用兩個不同的mac ...一次。

回答

1

//我使用蘋果的Docu樣品:提取文件名從NSURL //改變這種

if ([[[sender draggingPasteboard] types] containsObject:NSFilenamesPboardType]) 
    { 
     NSArray *files = [[sender draggingPasteboard] propertyListForType:NSFilenamesPboardType]; 
     pathOfDraggedImage = [files objectAtIndex:0]; 
     pathOfDraggedImage = [pathOfDraggedImage lastPathComponent]; 

     pathOfDraggedImage = [pathOfDraggedImage stringByReplacingOccurrencesOfString:@"%20" withString:@"_"]; 

     if ([pathOfDraggedImage length] > 70) { 
      // only take 70 characters 
      pathOfDraggedImage = [pathOfDraggedImage substringWithRange: NSMakeRange(0, 70)]; 
     } 
    }