Класс не соответствует протоколу NSItemProviderWriting - Objective-C

Создан класс, который реализует NSItemProviderWriting

Это дает предупреждение как:

1. Класс "DraggableEvent" не соответствует протоколу "NSItemProviderWriting"
2. Для свойства класса "writableTypeIdentifiersForItemProvider" требуется определить метод "writableTypeIdentifiersForItemProvider" - используйте @dynamic или предоставьте реализацию метода в реализации этого класса

Код: DraggableEvent.h

#import <Foundation/Foundation.h>

@interface DraggableEvent : NSObject <NSItemProviderWriting>
{

}

DraggableEvent.m @implementation DraggableEvent

@synthesize writableTypeIdentifiersForItemProvider;

-(void)setWritableTypeIdentifiersForItemProvider:
(NSArray*)writableTypeIdentifiersForItemProvider{

 }
 -(NSArray*)writableTypeIdentifiersForItemProvider{
   writableTypeIdentifiersForItemProvider = [[NSArray 
   alloc]initWithObjects:@"com.apple.ical.ics", nil];
   return writableTypeIdentifiersForItemProvider;
  }


  - (nullable NSProgress *)loadDataWithTypeIdentifier:(NSString 
  *)typeIdentifier
               forItemProviderCompletionHandler:(void (^)(NSData * 
   _Nullable data, NSError * _Nullable error))completionHandler{
    completionHandler([self createVEvent], nil);
    return nil;
   }

1 ответ

Я понял это.

обратите внимание, что это свойство класса.

@property (class, NS_NONATOMIC_IOSONLY, readonly, copy) NSArray<NSString *> *readableTypeIdentifiersForItemProvider;

поэтому мы должны использовать

+ (NSArray<NSString *> *)writableTypeIdentifiersForItemProvider; + (NSArray<NSString *> *)readableTypeIdentifiersForItemProvider;

вместо -

см этот вопрос ниже

Как реализовать @property (class, readonly, copy, nonatomic) NSArray * _Nullable readableTypeIdentifiersForItemProvider;

Другие вопросы по тегам