菜鸟教程小白 发表于 2022-12-12 21:11:50

ios - 类别最佳做法


                                            <p><p>我正在使用 <em>categories</em> 来处理一些我以前可能使用继承的事情。</p>

<p>我现在正在做的事情更像是一个最佳实践问题,我不确定它应该如何<em></em>实现。我正在写一个关于 <code>UIActivityIndi​​catorView</code> 的类别,它基本上将用于将事件指示器放在任意 View 中。下面你会找到我如何做的代码示例,我的主要问题是这是否好。如果是这样的话,我会很感激评论为什么它很糟糕。谢谢。</p>

<p><strong>类别:</strong></p>

<pre><code>@interface UIActivityIndicatorView (Customizations)
    - (UIActivityIndicatorView *) inView:(UIView *) target;
@end
</code></pre>

<p><strong>实现:</strong></p>

<pre><code>@implementation UIActivityIndicatorView (Customizations)

- (UIActivityIndicatorView *) inView:(UIView *) target {
    ;
    ;
    self.frame = target.bounds;
    self.backgroundColor = ;

    return self;
}
@end
</code></pre>

<p><strong>那我会这样使用:</strong></p>

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

<p>我猜另一种方法是创建一个初始化函数来获取容器 View 并仅返回“样式化” View ,或者可能不返回任何内容(<code>void</code>)而只是让方法做样式。</p>

<p>所以我正在寻找一些关于如何处理这个问题的指导。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><blockquote>
<p>What kind of worries me is that I am actually making a second copy of the UIActivityIndicatorView which seem unnecessary</p>
</blockquote>

<p>不,你没有。您可能会对您从类别方法返回 self 的事实感到困惑,但这只是一个指针,而不是被复制的对象本身。</p>

<p>但是,我的实现方式会略有不同:</p>

<pre><code>- (void) addToSuperView:(UIView *) target {
    ;
    ;
    self.frame = target.bounds;
    self.backgroundColor = ;

    ;
}
</code></pre>

<p>这样,您在添加时不需要进行额外的、不必要的调用:</p>

<pre><code>;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 类别最佳做法,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/10754167/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/10754167/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 类别最佳做法