我有一個NSDragOperation
,它在用戶將其拖入窗口時獲取屬性列表路徑。這似乎工作得很好,我可以路徑信息保存到一個NSString:NSString被破壞,對NSPrincipalClass的更改
NString *thisPath = draggedFilePath;
NSLog(@" %@",thisPath);
output: 2014-02-09 09:19:46.072 app[5944:303] /Users/Me/Desktop/file.plist
的問題,當我進入調度隊列開始。當我嘗試從背景隊列中讀取NSString時,輸出變爲NSPrincipalClass
。有誰知道爲什麼會發生這種情況,或者如果我在輸入dispatch_queue_t
之前將NSString轉換爲其他格式?
dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(backgroundQueue, ^{
for (NSUInteger i = 0; i < 1; i++) {
dispatch_async(dispatch_get_main_queue(), ^{
});
}
NSLog(@" %@",thisPath);
output: 2014-02-09 09:19:56.234 app[5944:12203] NSPrincipalClass
編輯:使用的NSLog調度隊列內的串的輸出變成了隨機的符號,並也崩潰。最後的輸出是<__NSMallocBlock__: 0x55a860>
- 我有其他的字符串在同一個函數中似乎很好,所以我真的不知道是什麼造成了這種情況。
請嘗試製作字符串的副本。 –