2015-09-27 1 views
0

Я использую Xcode, здание с базовым SDK и цели развертывания: OS X 10.8, пытаясь использовать [NSOpenPanel directoryURL] которую offical documentation говорит является[NSOpenPanel directoryURL] дает ошибку: Нет видимых @interface для «NSOpenPanel» заявляет селектор «directoryURL:»

Available in OS X v10.6 and later

Но я получаю ошибку:

ARC Semantic issue - No visible @interface for 'NSOpenPanel' declares the selector 'directoryURL:'

Код:

#import <Cocoa/Cocoa.h> 
// #import <NSOpenPanel.h> // No good 
@import AppKit; 

void fileOpen() 
{ 
    NSOpenPanel *openPanel = [NSOpenPanel openPanel]; 
    // [openPanel setDirectory:@""]; // works, but deprecated in OSX 10.6 
    [openPanel directoryURL: [NSURL URLWithString:@"file:///path/"]]; 
    // ... 
} 

Так что я делаю неправильно здесь?

ответ

2

directoryURL - свойство и не принимает строковый аргумент, как то, что вы изначально предполагали. Вот почему вы видели ошибку при попытке разрешить селектор directoryURL:'.

Свойство directoryURL имеет, однако, геттер и сеттер.

Попробуйте использовать:

[openPanel setDirectoryURL: [NSURL URLWithString:@"file:///path/"]]; 

или:

openPanel.directoryURL = [NSURL fileURLWithPath:@"path"]; 
+0

упс вы правы, это свойство. Все это переключение языка путает мой мозг. Благодарю. – Petruza

Смежные вопросы