ARC下就交由编译器来进行内存管理,所以你可以直接这样来创建一个字符串
NSString *str = [[NSString alloc] initWithCString: nullTerminatedCString encoding: encoding];

解决方案 »

  1.   

    这个实现代码里之所以会用到这个宏:AUTORELEASE,就是因为它适配了ARC,如果是ARC的话,这个宏就什么都不会做,反之则调用autorelease
      

  2.   

    它那个AUTORELEASE宏内部应该判断了运行设备是否支持ARC的情况,如果支持不做处理,如果不支持给对象发送autorelease消息
      

  3.   


    谢谢zhanglei5415和zhanglei5415我前面说到的问题和答案   我是在这里看到的,http://blog.csdn.net/dayuqi/article/details/8101099
    但是我真的看不懂,题目是:
    写一个NSString类的实现,但是答案却是  stringWithCString 方法的实现,
    这个答案是不是牛头不对马嘴?如果真有这样一道题,那该如何答呢?
      

  4.   

    谢谢zhanglei5415和zhangao0086,刚才拷贝名字时没有拷贝下来,结果ctrl v两次了,搞重复了,更正下。
      

  5.   


    谢谢zhanglei5415和zhanglei5415我前面说到的问题和答案   我是在这里看到的,http://blog.csdn.net/dayuqi/article/details/8101099
    但是我真的看不懂,题目是:
    写一个NSString类的实现,但是答案却是  stringWithCString 方法的实现,
    这个答案是不是牛头不对马嘴?如果真有这样一道题,那该如何答呢?那道题主要考察的是NSString的创建及如何使用类方法构造一个便捷的创建NSString对象的工厂方法。根据要求,参数是一个C字符,而在oc中根据C字符来创建NSString的就只有stringWithCString这个系统提供的函数。