ios - 从预期返回非空值的方法返回 Nil
<p><p>我正在实现 <code>UIKeyInput</code>、<code>UITextInputTraits</code> 和 <code>UITextInput</code> 并且我需要实现:</p>
<pre><code>- (NSArray *)selectionRectsForRange:(UITextRange *)range
{
return nil;
}
</code></pre>
<p>但是,在分析我的项目时,我得到:“从预期返回非空值的方法返回 nil”。 </p>
<p>摆脱这种情况的正确方法是什么?我应该中止吗?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>实际上,如果您查看 header 源,该方法附加了 <code>NS_ASSUME_NONNULL_BEGIN</code> 标记。所以简而言之 <code>selectionRectsForRange</code> 变成了一个非空返回方法。</p>
<pre><code>//
//UITextInput.h
//UIKit
//
//Copyright (c) 2009-2017 Apple Inc. All rights reserved.
//
#import <CoreGraphics/CoreGraphics.h>
#import <UIKit/UITextInputTraits.h>
#import <UIKit/UIResponder.h>
...
NS_ASSUME_NONNULL_BEGIN// <--- HERE!
..
- (CGRect)firstRectForRange:(UITextRange *)range;
- (CGRect)caretRectForPosition:(UITextPosition *)position;
- (NSArray *)selectionRectsForRange:(UITextRange *)range NS_AVAILABLE_IOS(6_0);
</code></pre>
<p>所以你不能返回 null 或 nil。而是像这样返回一个空数组:</p>
<pre><code>- (NSArray *)selectionRectsForRange:(UITextRange *)range
{
return @[];
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 从预期返回非空值的方法返回 Nil,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/45928348/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/45928348/
</a>
</p>
页:
[1]