ios - Objective-C iOS6 [] 运算符重载(const id [])
<p><p>我知道新的文字和访问器,比如 </p>
<pre><code>id obj = ;
</code></pre>
<p>等价于</p>
<pre><code>id obj = dict[@"keyStr"];
</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 ("LLVM compiler") 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]