Класс не соответствует протоколу 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;
вместо -
см этот вопрос ниже