Во-первых, я ничего не знаю об Objective-C.
При этом следующий код должен получать данные из AsyncStorage.
Я уже сделал что-то подобное для Android, где основная идея - получить данные из AsyncStorage как Json Object.
Теперь мне нужно использовать jsonFromLocalRNStrogeForKey
внутри callInviteReceived
jsonFromLocalRNStrogeForKey источник
+(void)jsonFromLocalRNStrogeForKey:(NSString *)key completion:(void (^)(NSDictionary * _Nullable, NSError * _Nullable))completion
{
RCTResponseSenderBlock rnCompletion = ^(NSArray *response) {
NSString *jsonAsString;
if (response.count > 1) {
NSArray *response1 = response[1];
if (response1.count > 0) {
NSArray *response2 = response1[0];
if (response2.count > 1) {
jsonAsString = response2[1];
}
}
}
NSData *jsonAsData = [jsonAsString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error;
NSDictionary *json = [
NSJSONSerialization
JSONObjectWithData:jsonAsData
options:NSJSONReadingMutableContainers
error:&error
];
completion(json, error);
};
RCTAsyncLocalStorage *storage = [RCTAsyncLocalStorage new];
dispatch_async(storage.methodQueue, ^{
[storage performSelector:@selector(multiGet:callback:) withObject:@[key] withObject:rnCompletion];
});
}
callInviteReceived
- (void)callInviteReceived:(TVOCallInvite *)callInvite {
NSJsonSerialization json = [self.jsonFromLocalRNStrogeForKey];
// json.user.name
[self reportIncomingCallFrom:@json.user.name withUUID:callInvite.uuid];
}
Эти методы должны работать примерно так
-(NSJsonSerialization)jsonFromLocalRNStrogeForKey: {
...
return json;
}
- (void)callInviteReceived {
...
NSJsonSerialization json = [self.jsonFromLocalRNStrogeForKey];
// json.user.name
[self reportIncomingCallFrom:json.user.name withUUID:callInvite.uuid];
}
Итак, есть ли кто-нибудь, кто мог бы показать мне, как это кодировать?