菜鸟教程小白 发表于 2022-12-12 21:27:46

ios - KVO - 观察 NSArray 中包含的对象的属性


                                            <p><p>仍然无法使用 NSArray 对象来消化 KVO。我的要求是例如假设车库里有多辆汽车。我想观察汽车轮胎性能的变化,比如前轮胎升级还是后轮胎。</p>

<p>汽车.h</p>

<pre><code>@property(nonatomic, strong) NSString *frontTyre;
@property(nonatomic, strong) NSString *backTyre;
</code></pre>

<p>车库.h</p>

<pre><code>@property(nonatomic, strong) NSArray *cars; //Think there are two cars in the garage.
</code></pre>

<p>在 CarOwner.m 中</p>

<pre><code>;]


-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if()
    {
       //Here I am able to get the car object which got a type upgrade.
       //But how to know which tyre got upgraded?
    }
}
</code></pre>

<p>在升级汽车轮胎时:</p>

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

<p>我应该去<a href="https://stackoverflow.com/a/5692843/2391213" rel="noreferrer noopener nofollow">this</a>或 <a href="https://stackoverflow.com/a/21821160/2391213" rel="noreferrer noopener nofollow">this</a>方法?或者您可能有任何其他建议。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以按如下方式使用添加观察者:</p>

<pre><code> forKeyPath:@&#34;frontTyre&#34; options:0 context:nil];
</code></pre>

<p>记得在必要时移除观察者。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - KVO - 观察 NSArray 中包含的对象的属性,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38588160/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38588160/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - KVO - 观察 NSArray 中包含的对象的属性