我正在实现 UIKeyInput 、UITextInputTraits 和 UITextInput 并且我需要实现:
- (NSArray *)selectionRectsForRangeUITextRange *)range
{
return nil;
}
但是,在分析我的项目时,我得到:“从预期返回非空值的方法返回 nil”。
摆脱这种情况的正确方法是什么?我应该中止吗?
Best Answer-推荐答案 strong>
实际上,如果您查看 header 源,该方法附加了 NS_ASSUME_NONNULL_BEGIN 标记。所以简而言之 selectionRectsForRange 变成了一个非空返回方法。
//
// 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)firstRectForRangeUITextRange *)range;
- (CGRect)caretRectForPositionUITextPosition *)position;
- (NSArray *)selectionRectsForRangeUITextRange *)range NS_AVAILABLE_IOS(6_0);
所以你不能返回 null 或 nil。而是像这样返回一个空数组:
- (NSArray *)selectionRectsForRangeUITextRange *)range
{
return @[];
}
关于ios - 从预期返回非空值的方法返回 Nil,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/45928348/
|