नील एक ऐसी विधि से लौट आया है जो एक गैर-शून्य मूल्य - आईओएस, उद्देश्य-सी, कोको-स्पर्श वापस करने की उम्मीद है

मैं लागू कर रहा हूँ UIKeyInput, UITextInputTraits, तथा UITextInput और इसके साथ मुझे "लागू करने की आवश्यकता है:

- (NSArray *)selectionRectsForRange:(UITextRange *)range
{
return nil;
}

हालांकि, मेरी परियोजना का विश्लेषण करने में मुझे मिलता है: "शून्य एक ऐसी विधि से लौटा दी गई है जो एक गैर-शून्य मान वापस करने की उम्मीद है"।

इससे छुटकारा पाने का सही तरीका क्या होगा? क्या मुझे गर्भपात करना चाहिए?

उत्तर:

उत्तर № 1 के लिए 1

वापस मत करो nil। यदि आपके पास नहीं है UITextSelection वापस लौटने के लिए, एक खाली सरणी वापस।


जवाब के लिए 3 № 2

दरअसल यदि आप हेडर स्रोत देखते हैं, तो विधि है 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)firstRectForRange:(UITextRange *)range;
- (CGRect)caretRectForPosition:(UITextPosition *)position;
- (NSArray *)selectionRectsForRange:(UITextRange *)range NS_AVAILABLE_IOS(6_0);

तो आप शून्य या शून्य वापस नहीं कर सकते हैं। इसके बजाय एक खाली सरणी वापस करें:

- (NSArray *)selectionRectsForRange:(UITextRange *)range
{
return @[];
}

संबंधित सवाल
सबसे लोकप्रिय