欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

何时使用[self release]

发布时间:2025/3/19 编程问答 29 豆豆
生活随笔 收集整理的这篇文章主要介绍了 何时使用[self release] 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这样的语句

  • [self release];
  • 乍看上去让人很困惑。

    从release方法本身的作用上来说,就是给self的引用技术减一,就像release对其他对象所做的一样。

    一般来说,唯一用到,也是最合适使用


  • [self release];
  • 这一写法的地方是在initXXX方法中。
    在初始化方法中创建对象失败,并需要返回nil,同时销毁刚刚创建的对象的时候。


    比如,要求初始化方法在调用是必须提供合适的参数时,可以这样使用


  • [self release];

  • eg:


  • - (id)initWithFoo:(Foo *)foo {
  • if (!foo) {//foo is required to be non-nil!
  • [self release];
  • return nil;
  • }
  • //proceed with initialization
  • return self;
  • }


  • 在fmdb的队列初始化方法中也有同样的应用:

  • - (id)initWithPath:(NSString*)aPath {
  • self = [super init];
  • if (self != nil) {
  • _db = [FMDatabase databaseWithPath:aPath];
  • FMDBRetain(_db); //在非arc环境中等于[_db retain]
  • if (![_db open]) {
  • NSLog(@"Could not create database queue for path %@", aPath);
  • FMDBRelease(self); //在非arc环境中等于[self release]
  • return 0x00; //返回空
  • }
  • _path = FMDBReturnRetained(aPath);
  • _queue = dispatch_queue_create([[NSString stringWithFormat:@"fmdb.%@", self] UTF8String], NULL);
  • }
  • return self;
  • }


  • 其他情况下几乎不用考虑

    [self release];

    这种用法。

    欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 572064792 | Nodejs:329118122 做人要厚道,转载请注明出处!









    本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sunshine-anycall/p/4149043.html,如需转载请自行联系原作者

    总结

    以上是生活随笔为你收集整理的何时使用[self release]的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。