菜鸟教程小白 发表于 2022-12-12 23:18:49

ios - Objective-C iOS6 [] 运算符重载(const id [])


                                            <p><p>我知道新的文字和访问器,比如 </p>

<pre><code>id obj = ;
</code></pre>

<p>等价于</p>

<pre><code>id obj = dict[@&#34;keyStr&#34;];
</code></pre>

<p>我注意到主类有一些变化,比如</p>

<pre><code>+ (id)dictionaryWithObjects:(const id [])objects forKeys:(const id [])keys count:(NSUInteger)cnt;
</code></pre>

<p>但什么是 (const id [])? </p>

<p>如何使用 [ ] 运算符创建自己的类</p>

<p>这基本上是运算符重载,我认为这在 ObjectiveC 中是不可能的,是否有可能重载其他运算符,如 +、/、- 等...</p>

<p>在 C++ 中可以实现运算符重载,这是否意味着我可以将其用作 Objective-C++ 类?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p><code>const id []</code> 只是 <code>const</code> Objective-C 对象的 C 数组。该方法处理 <code>NSDictionary</code> 从字典文字 - <code>@{ @"a": @1 }</code> 的构造。这不是你要找的。</​​p>

<p>使用 <code>something</code> 通过对象 <code>something</code> 内的键 <code>X</code> 访问对象是 <em>subscripting</em >。 </p>

<p>如果你希望你的类支持下标,你实现 <code>- (id)objectAtIndexedSubscript:(NSUInteger)idx</code> 如果你想取整数和 <code>- (id)objectForKeyedSubscript:(id)键</code> 如果你想拿物体。欲了解更多信息,<a href="http://clang.llvm.org/docs/ObjectiveCLiterals.html" rel="noreferrer noopener nofollow">see the clang (&#34;LLVM compiler&#34;) documentation of this feature</a> .</p>

<p>setter 对应的方法是 <code>- (void)setObject:(id)anObject atIndexedSubscript:(NSUInteger)index</code> 和 <code>- (void)setObject:(id)object forKeyedSubscript:(id <NSCopying>)aKey</code>.</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Objective-C iOS6 [] 运算符重载(const id []),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/13028574/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/13028574/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Objective-C iOS6 [] 运算符重载(const id [])