菜鸟教程小白 发表于 2022-12-13 06:07:55

iOS 开发 : How am I mismanaging memory in this code?


                                            <p><p>我刚刚添加了一些取自 <a href="http://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW20" rel="noreferrer noopener nofollow">Apple docs</a> 的代码它显示了如何使用从 nib 创建的自定义 UITableViewCells。我是 iOS 开发的新手,所以我仍在学习正确的内存管理,而且代码对我来说并不完全清楚它是如何工作的。当我运行 Allocations 工具时,它会在下面的代码中显示未分配的内存。具体来说,它显示在 ViewController 从导航堆栈中弹出后 UITableViewCells 仍然存在...</p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{   
    static NSString *CellIdentifier = @&#34;MyCustomCellIdentifier&#34;;

    UITableViewCell *cell = ;
    if (cell == nil) {
      [ loadNibNamed:@&#34;MyCustomCell_iPhone&#34; owner:self options:nil];//&lt;--Allocations instrument complaining about this line
      cell = customCell;
      ;
    }

    return cell;
}
</code></pre>

<p><code>customCell</code> 是在这个 ViewController 中定义的一个实例变量,像这样...</p>

<pre><code>IBOutlet UITableViewCell *customCell;
@property (nonatomic, retain) IBOutlet UITableViewCell *customCell;
</code></pre>

<p>这段代码有问题吗?</p>

<p>非常感谢您的智慧!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我比较了文档中的代码:</p>

<pre><code>if (cell == nil) {
    [ loadNibNamed:@&#34;TVCell&#34; owner:self options:nil];
    cell = tvCell;
    self.tvCell = nil;
}
</code></pre>

<p>使用您的代码:</p>

<pre><code>if (cell == nil) {
    [ loadNibNamed:@&#34;MyCustomCell_iPhone&#34; owner:self options:nil];
    cell = ;
    ;
}
</code></pre>

<p>您分配 <code>cell</code> 的行似乎存在差异。 Apple 的示例代码使用 <code>tvCell</code>,<strong>实例变量</strong>,而您使用 <code></code>,<strong>实例变量的属性 getter </强>。这可能是原因吗?尝试改变</p>

<pre><code>    cell = ;
</code></pre>

<p>到</p>

<pre><code>    cell = customCell;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 开发 : How am I mismanaging memory in this code?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/4347600/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/4347600/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 开发 : How am I mismanaging memory in this code?