我正在实现 UIKeyInput
、UITextInputTraits
和 UITextInput
并且我需要实现:
- (NSArray *)selectionRectsForRangeUITextRange *)range
{
return nil;
}
但是,在分析我的项目时,我得到:“从预期返回非空值的方法返回 nil”。
摆脱这种情况的正确方法是什么?我应该中止吗?
实际上,如果您查看 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/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |