菜鸟教程小白 发表于 2022-12-13 13:54:20

ios - 使用 performSelectorInBackground 时内存泄漏


                                            <p><p>我是 iOS 开发的新手。我在运行后台线程时遇到问题。在我的代码中,resetUi 在主 UI 线程上运行,现在我正在启动一个后台线程来获取图像数据并更新我的图像。一切正常,但调用 performSelectorInBackground 时内存泄漏。</p>

<p>请让我知道我哪里做错了。另外请建议在从 URL(dataWithContentsOfURL) 获取时是否有更好的方法来更新我的图像。</p>

<p>[更新]</p>

<p>Instrument 显示 2 个单独的泄漏,一个在 perfromSelectorInBackground,另一个在 UIImage imageWithData。我猜 imageupdate(imageWithData) 出了点大问题</p>

<pre><code>-(void)updateData{
    NSAutoreleasePool *pool = [ init];   

    profileName.text = oAuthTwitter.screen_name;

    if(profilePic.image == nil){
      NSString *urlString = @&#34;https://api.twitter.com/1/users/profile_image/&#34;;
      urlString = ;   
      urlString = ;            
      profilePic.image = ]];         
      ;
      ;
    }   
    ;   

}   

- (void)resetUi{

    if (oAuthTwitter.oauth_token_authorized) {
      profilePic.hidden = NO;
      profileName.hidden = NO;

      NSLog(@&#34;Resetting to authorised state&#34;);
      ;

    }else{

      NSLog(@&#34;Resetting Twitter UI to non-authorized state.&#34;);

    profilePic.hidden = YES;
      profileName.hidden = YES;      

    }

}   
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我认为你应该使用</p>

<pre><code>;
</code></pre>

<p>而不是</p>

<pre><code>;
</code></pre>

<p>这是更好的做法。</p>

<p>你也可以尝试在主线程中释放activityIndi​​cator吗?</p>

<p>从您提供的代码中,我找不到任何其他泄漏原因。您是否尝试使用泄漏仪器和静态分析器运行您的代码?</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用 performSelectorInBackground 时内存泄漏,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10811019/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10811019/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用 performSelectorInBackground 时内存泄漏