stringByAppendingPathComponent与stringByAppendingString区别

这两个方法都是在一个字符串中添加一个字符串组成一个新的字符串,有什么区别呢?

文档上就是这样写的,一般来说,就是说用pathComponent这个会自动加上“/”组成一个路径,如果你加了多个“/”,它还是会返回一个正确的路径的,只会返回一个“/”。

而appendingString就是你给它什么,它不会加什么判断,都是原样给你加上去的,具体情况自己把握着用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
除了使用NSBundle的pathForResource:ofType:方法之外,还有其他几种方法可以在Objective-C中通过类名获取文件名。 1. 使用NSString的方法stringByAppendingString:将类名与文件类型拼接起来,然后使用NSFileManager的方法fileExistsAtPath:判断文件是否存在。 ``` NSString *className = NSStringFromClass([MyClass class]); NSString *filePath = [[NSBundle mainBundle] resourcePath]; NSString *fileName = [className stringByAppendingString:@".m"]; NSString *fullPath = [filePath stringByAppendingPathComponent:fileName]; if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) { // 文件存在 } ``` 在这个示例中,我们首先获取类名,然后使用NSBundle的resourcePath方法获取资源路径,然后将类名与文件类型拼接起来,得到完整的文件名。最后,使用NSFileManager的fileExistsAtPath方法判断文件是否存在。 2. 使用C函数objc_getClass和class_getName获取类名,然后使用C函数dlopen和dlsym获取文件名。 ``` #include <dlfcn.h> #import <objc/runtime.h> Class class = objc_getClass("MyClass"); const char *className = class_getName(class); void *handle = dlopen(NULL, RTLD_NOW); const char *fileName = dlsym(handle, className); ``` 在这个示例中,我们首先使用objc_getClass和class_getName函数获取类名,然后使用dlopen和dlsym函数获取文件名。需要注意的是,dlopen和dlsym函数需要传入正确的动态链接库文件路径,否则会出现错误。 总的来说,虽然可以使用多种方法在Objective-C中通过类名获取文件名,但是使用NSBundle的pathForResource:ofType:方法是最常用的方法,也是最简单的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值