我刚开始用Applescript后,我似乎不能得到FSMountServerVolumeSync的工作。这看起来像是一个完全初学者的问题,但是如何将参数从变量传递给这个动作?
让我解释一下:
我想取一个名为*username的变量,并在此操作中将其设置为用户名。我也想这样做*url和url。有没有人可以给我展示一个如何从绝对初学者的角度设置这个的例子?我目前正在阅读教程等,但我想得到这段代码完成,即使我不完全明白我在做什么。。
提前感谢!
[edit]这是我到目前为止得到的:
- (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);
}
这些都不是愚蠢的问题。
记住CFStringRef和cflref是免费桥接的,这意味着在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 );
}
明白我的意思了吗?
这里是一些关于免费桥接类型的苹果文档