新手求解两种NSString赋值的区别 NSString *a = @"something";NSString *b = [[NSString alloc] initWithFromat:@"something"];NSLog(@"%d",[a retainCount]);NSLog(@"%d",[b retainCount]);请问上面两种赋值方式的具体区别;以及为何第一个数字非常大,新手再次真心感谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一个是常量,objective-c基础书上有将 第一种应该是autorelease,第二种是要手动释放内存的 NSString是对象类型,说它是常量并不正确,而2楼的说法很正确,因为字符串实例“a”是系统完成的初始化,所以返回时带上了AutoRelease(自动释放池机制),而字符串实例“b”是手动实例化并赋初值,够其引用基数加1。 如果你要试验retain count,请不要拿NSString来做测试。 凡是没有明确写Alloc创建的对象都是Autorelease对象。 是这样的。第一种,系统会默认为autorelease,帮你释放掉它 第二种,则是自己去释放 常量字符串的引用计数值是0x7fffffff,这表示它是永不释放的. 关于视图切换 Objective-C语言,可以嵌入C语言么? IOS 如何实现下载功能? 求助3个功能的实现(求越狱开发高手帮忙) iOS 7 tableviewcell 静态添加控件 发布问题再问,继续吐血中!!!! 这两个导航栏item的坐标和大小有人知道么 Xcode6.1 iOS8 导航控制器popToRootViewContriller问题,求大神指点啊 请问OC中如何将分钟转换成秒,如下格式 MAC下怎么检测USB的插入和拔出? 请问snow leopard系统需要那个版本的xcode和sdk? 请教一个比较基础的声明语法问题
NSString是对象类型,说它是常量并不正确,而2楼的说法很正确,因为字符串实例“a”是系统完成的初始化,所以返回时带上了AutoRelease(自动释放池机制),而字符串实例“b”是手动实例化并赋初值,够其引用基数加1。
是这样的。第一种,系统会默认为autorelease,帮你释放掉它 第二种,则是自己去释放