美文网首页
不太注意的面试题

不太注意的面试题

作者: 宙斯YY | 来源:发表于2018-05-24 12:16 被阅读11次

1.NSString使用strong修饰的问题。

可变字符串使用copy和strong

@interface GrayView : UIView
@property(nonatomic,strong) NSMutableString * name;
//@property(nonatomic,copy) NSMutableString * name;
@end
NSMutableString * nameStr=[[NSMutableString alloc]initWithString:@"test"];
self.testview.name=nameStr;
[nameStr appendString:@"-view"];
NSLog(@"%p:%@-%p:%@",nameStr,nameStr,self.testview.name,self.testview.name);

结果:strong:地址相同,结果相同;copy:地址不同,结果不同
分析:setName方法内部,如果用strong修饰,直接赋值name=_name;如果用copy修饰,name=_name copy;
结论:使用copy修饰,防止外界修改。

不可变字符串使用copy和strong

@interface GrayView : UIView
@property(nonatomic,strong) NSString * name;
//@property(nonatomic,copy) NSString * name;
@end
NSString * nameStr=@"test";
self.testview.name=nameStr;
NSLog(@"%p:%@-%p:%@",nameStr,nameStr,self.testview.name,self.testview.name);

结果:strong:地址相同,结果相同;copy:地址相同,结果相同
分析:不可变字符串copy时不会创建新内存空间(反正也不能修改,开辟新空间没意义)
结论:使用strong修饰,直接赋值比调用copy效率更高。

相关文章

  • 不太注意的面试题

    1.NSString使用strong修饰的问题。 可变字符串使用copy和strong 结果:strong:地址相...

  • 大厂面试为什么需要了解JVM

    如果你经常注意面试题,你会发现现在面试题多多少少会含有jvm相关的面试题,之前也把一些jvm面试题汇总了下:面试题...

  • iOS底层原理-内存管理

    面试题 使用CADisplayLink、NSTimer有什么注意点?CADisplayLink、NSTimer会对...

  • 内存管理

    面试题 CADisplayLink,NSTimer 使用注意点 CADisplayLink,NSTimer会对ta...

  • 面试为什么需要了解JVM

    说在前面 如果你经常注意面试题,你会发现现在面试题多多少少会含有jvm相关的面试题,那么为什么现在面试需要了解或者...

  • 【135】一次难忘的“擦肩而过”

    林一是那种不太注意外界的人,所以走路的时候,不太注意路也不太注意人,在路上捡到钱的事情,从来没有发生过在她身上,倒...

  • 为什么产品要聚焦

    Fenng最近放出来的「关于微信的几个面试题」,虽然从提问的措辞准确程度来看,我不太相信这真的出自微信的面试题,但...

  • iOS底层原理 - 内存管理 之 定时器(一)

    面试题引发的思考: Q: 使用CADisplayLink、NSTimer有什么注意点? 循环引用:CADispla...

  • String类面试题

    String类的面试题,往往是面试的开端,如果String类的面试题都没有答好,那么给面试官的第一印象并不太好了 ...

  • 全新角度分析--iOS面试

    参考: 一:面试题注意事项 (面试官角度) 我们很多iOS面试官在招聘的时候,很多都是直接在网上找一份iOS面试题...

网友评论

      本文标题:不太注意的面试题

      本文链接:https://www.haomeiwen.com/subject/jzzjjftx.html