相关疑难解决方法(0)

在init中调用dealloc?

我正在编写一个框架,我有一个自定义init方法的对象:

@implementation OSDatabase
@synthesize database;

// MEM
- (void)dealloc {
  sqlite3_close(database);

  [super dealloc];
}

// INIT
- (id)initWithDatabasePath:(NSString *)path error:(NSError **)error {
  if (self = [super init]) {
    if (!sqlite3_open_v2([path UTF8String], &database, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL)) {
      error = [NSError errorWithDomain:@"OSDatabaseErrorDomain" code:1 userInfo:nil];
      [self dealloc];
      return nil;
    }
  }

  return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

如果出现错误dealloc,在init方法内部调用是否安全?我不确定这一点,记忆管理是我生命中最重要的事情之一.

谢谢.

objective-c init dealloc nsobject

0
推荐指数
1
解决办法
1331
查看次数

标签 统计

dealloc ×1

init ×1

nsobject ×1

objective-c ×1