菜鸟教程小白 发表于 2022-12-13 15:44:57

objective-c - 通过带有 NSSelectorFromString 的 performSelector 导致泄漏?


                                            <p><p>我正在尝试为我的游戏的关卡类创建一个相当动态的 api……基本上,我只有一堆类方法 optionsForLevel1、optionsForLevel2、……等等,它们都返回一个字典对象,其中包含类似的东西关卡应该有多少时间,有多少奖励积分,关卡名称等等......</p>

<p>在我的实际游戏对象中,当需要升级关卡时,它会调用关卡对象上的一个方法:</p>

<pre><code>+(NSDictionary*)performClassSelectorForLevel:(int)identifier {
    SEL sel = NSSelectorFromString();
    return ;
}
</code></pre>

<p>这给了我一个警告:PerformSelector 可能会导致泄漏,因为它的选择器是未知的。</p>

<p>...</p>

<p>我该如何解决这个警告?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这很有趣。你不能。不是我的经验。这只是一个警告,而不是错误,这“可能”导致泄漏。</p>

<p>当使用 <code>performSelector:</code> 时,你有责任确保它不会泄漏,当然编译器不知道 <code>NSString</code> 中的选择器,它在编译时,因为它将在运行时分配其值。</p>

<p>您可以隐藏此警告,但可以忽略</p>

<p>查看此答案了解更多详情:<a href="https://stackoverflow.com/questions/8773226/performselector-warning" rel="noreferrer noopener nofollow">PerformSelector warning</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 通过带有 NSSelectorFromString 的 performSelector 导致泄漏?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12064819/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12064819/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 通过带有 NSSelectorFromString 的 performSelector 导致泄漏?