6

私は、コード ベースの Clang エラーをクリーンアップする任務を負っています。私はiPhone開発とObjective Cに非常に慣れていませんが、ほとんどの問題は些細なことであることがわかりました...ただし、これは恥ずかしいことだと確信しているときに、私を困惑させます。

ZAttributedString クラスから:

- (id)initWithAttributedString:(ZAttributedString *)attr {
    NSParameterAssert(attr != nil);
    if ((self = [super init])) {
        _buffer = [attr->_buffer mutableCopy];
        _attributes = [[NSMutableArray alloc] initWithArray:attr->_attributes copyItems:YES];
    }
    return self;
}

クラン警告は、「'self' が '[super or self] init...]' の結果に設定されていない間に使用されるインスタンス変数であり、attr の _buffer 属性の逆参照が強調表示されています。

それが役立つ場合、警告には、このメソッドから呼び出したときに問題が見つかったことも記載されているようです。

- (id)copyWithZone(NSZone *)zone {
    return [(ZAttributedString *)[ZAttributedString allocWithZone:zone] initWithAttributedString:self];
}

ここにある欠陥が正確に何であるかを誰かに説明してもらえますか?

ティア!

4

2 に答える 2