iOS中关于字符 “&”的作用?

图片描述

如NSFileManager中关于判断是否目录的

阅读 4.1k
4 个回答

地址引用
fileExistsAtPath:isDirectory:方法里面可以对型参(比如说,bool *example这个指针)通过(比如说,*example = YES)的方式进行赋值,从而改变外部变量(比如说,你的isDir)的值。

因为fileExistsAtPath:isDirectory这个方法需要改变isDir的值,如果直接传入isDir(相当于直接传入一个BOOL值)是行不通的,所以用&isDirisDir的地址传给方法,这样该方法就可以对这个地址所保存的变量进行赋值或更改,这里&的作用就是获取isDir的地址。
Why is '&' (ampersand) put in front of some method parameters?

直接获取当前变量的地址

&指的就是内存地址。isDir是一个局部变量,假如将局部变量传进方法的运算,在方法内修改的值,只能是作用在方法内部,并不能修改传进去的局部变量的值。所以要将他的内存地址传进去,这样就可以直接修改内存地址的值,从而达到修改局部变量的作用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题