iOS中NSString的相关基础面试

如题

定义NSString使用assign进行修饰
@property (nonatomic, assign) NSString *assginStr

  • 问题一
  NSMutableString *originStr = [[NSMutableString alloc] initWithFormat:@"小明"];
    
//    NSString *originStr = @"小明";
    
    self.assginStr = originStr;
    
    NSLog(@"内容打印\noriginStr:%@,\nassginStr:%@",originStr,_assginStr);
    NSLog(@"地址打印\noriginStr:%p,\nassginStr:%p",originStr,_assginStr);
    
    originStr = nil;
    
    NSLog(@"内容打印\noriginStr:%@,\nassginStr:%@",originStr,_assginStr);
    NSLog(@"地址打印\noriginStr:%p,\nassginStr:%p",originStr,_assginStr);
  • 结论
    程序为引起崩溃

  • 问题二

//    NSMutableString *originStr = [[NSMutableString alloc] initWithFormat:@"小明"];
    
    NSString *originStr = @"小明";
    
    self.assginStr = originStr;
    
    NSLog(@"内容打印\noriginStr:%@,\nassginStr:%@",originStr,_assginStr);
    NSLog(@"地址打印\noriginStr:%p,\nassginStr:%p",originStr,_assginStr);
    
    originStr = nil;
    
    NSLog(@"内容打印\noriginStr:%@,\nassginStr:%@",originStr,_assginStr);
    NSLog(@"地址打印\noriginStr:%p,\nassginStr:%p",originStr,_assginStr);
  • 结论
    程序正常运行

大致可以涉及的几个知识点

  1. NSMutableStringNSString和特殊内存?
  2. NSString创建英文字母字符串长度?
  3. assign修改的相关问题?
  4. self.assginStr = originStr_assginStr = originStr的不同?
  5. NSString使用CopyStrong的知识?

今天的相关知识就到这里,欢迎大家讨论NSString的基础面试

你可能感兴趣的:(iOS中NSString的相关基础面试)