Параметр FSMountServerVolumeSync Цель c

Я только запускаю Objective C после того, как побаловать себя с Applescript, и я не могу заставить FSMountServerVolumeSync работать. Это может показаться вопросом для начинающих, но как передать параметр из переменной в это действие?

Позволь мне объяснить:
Я хочу взять переменную с именем *username и установить ее в качестве имени пользователя в этом действии. Я также хотел бы сделать это для *url и url. Можно ли как-нибудь показать мне пример того, как это настроить, с точки зрения абсолютного новичка? В настоящее время я читаю учебные пособия и т. Д., Но я хотел бы выполнить этот раздел кода, даже если я не совсем понимаю, что я делаю.;)
Заранее спасибо!

[править] Вот что у меня так далеко:

- (IBAction)signin:(id)sender{

NSString * user = @"myusername";
NSString * password = @"mypassword";
NSURL * url = [NSURL URLWithString: @"smb://123.456.789.0"];
NSURL * mountDir = [NSURL URLWithString: @"/Students"];

OSStatus FSMountServerVolumeSync (
                                  CFURLRef url, 
                                  CFURLRef mountDir, 
                                  CFStringRef user, 
                                  CFStringRef password, 
                                  FSVolumeRefNum *null, 
                                  OptionBits flags);


} 

1 ответ

Решение

Это не глупые вопросы вообще.

Помните, что CFStringRef и CFURLRef являются бесплатными мостовыми соединениями, что означает, что эквивалентами Objective C являются NSString и NSURL. Все, что вам нужно сделать, это сыграть.

- (IBAction)signin:(id)sender{

    NSString * user = @"myusername";
    NSString * password = @"mypassword";
    NSURL * url = [NSURL URLWithString: @"smb://123.456.789.0"];
    NSURL * mountDir = [NSURL URLWithString: @"/Students"];
    OptionBits flags = 0;
    OSStatus err = FSMountServerVolumeSync (
                                      (CFURLRef) url, 
                                      (CFURLRef) mountDir, 
                                      (CFStringRef) user, 
                                      (CFStringRef) password, 
                                      NULL, 
                                      flags);

    if(err != noErr)
        NSLog( @"some kind of error in FSMountServerVolumeSync - %ld", err );
} 

Видишь, что я имею в виду?

Вот некоторая документация Apple о бесплатных мостовых типах.

Другие вопросы по тегам