0
Этот код падает с SIGABRT:Чтение URL-адресов из NSOpenPanel вызывает сбой с SIGABRT
NSOpenPanel *openPanel = [NSOpenPanel openPanel];
[openPanel runModalForTypes:nil];
NSArray* URLs = [openPanel URLs];
for (NSString* item in URLs)
{
NSLog(item); // here it crashes with SIGABRT
}
Я не вижу ничего плохого в коде, но я новичок в Objective-C.
Да, это проблема. Я бы, вероятно, использовал 'NSLog (@"% @ ", [url path]);'. –
@enchilada Спасибо за ответ, мой код отлично работает! Но, исходя из C++, я ожидал ошибку компиляции в этом случае, нет ли указателей типа-указателя в объекте-c? – sashoalm
Конечно, есть проверки типа указателя. Первоначально вы не получали предупреждение о компиляции, потому что NSLog действительно ожидает строку, и ранее вы написали «NSString * item», чтобы вы не получили никаких предупреждений. Вы должны были получить предупреждение с «NSURL * url». Но я думаю, что в обоих случаях вы должны были получить какое-то предупреждение, когда вы передаете объект непосредственно в NSLog. Кажется, я помню, что видел такое предупреждение. Возможно, это зависит от настроек компилятора. – Enchilada