关于NSString的一些用法

iOS 码拜 6年前 (2015-05-08) 262次浏览 0个评论
 

我在做C++时候有个习惯
初始化的时候习惯把指针初始化成NULL
在析构的时候习惯#define MEMORY_FREE(a) if(a){delete a; a=NULL};用这个宏删除指针。
在使用这个指针的时候习惯if(指针),先判断指针是否为空,再使用这个指针。

在iPhone中加入在成员变量的时候定义了一个NSString* str;
我是否可以在viewDidLoad中写 str = nil;
使用的时候 if(str){…}
在dealloc中 if(str){[str release]; str = nil;}

不知道这种使用方法是否正确,语法是否正确,还请大牛指点。

语法应该没什么问题,但也无所谓了
30分
引用楼主 mingmingxiuxiu 的回复:

我在做C++时候有个习惯
初始化的时候习惯把指针初始化成NULL
在析构的时候习惯#define MEMORY_FREE(a) if(a){delete a; a=NULL};用这个宏删除指针。
在使用这个指针的时候习惯if(指针),先判断指针是否为空,再使用这个指针。

在iPhone中加入在成员变量的时候定义了一个NSString* str;
我是否可以在viewDidLoad……

这么用没问题,但是没必要。

obc里面,nil 调用其它方法是没错得。也就是实例可以为nil, 比如NSString* str = nil; [str dosomething]; is ok
delloc里面,没必要判断是不是为空,因为[nil release] 也没错。release完后,不必要设置为nil.因为这个稀构函数。

objC 里面给nil发消息不会有异常,完全没必要这么麻烦,你不判断空指针也没什么问题.
楼上大牛们说的都对,这样做确实没问题!
这样做木有问题,iphone采用的是智能指针,你可以详细学习,和java是一样的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于NSString的一些用法
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!