iOS:在脱机状态下创建http请求队列

前端之家收集整理的这篇文章主要介绍了iOS:在脱机状态下创建http请求队列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个与服务器一起使用的应用程序.
我想创建一个离线模式,即当用户创建某些内容或更改它在某处保存时,然后当出现互联网连接时 – 这些请求将转到服务器.我怎样才能做到这一点?如何在NSUserDefaults中存储块?如何不丢失指向这些块的指针?
它可以是不同的控制器.请帮帮我.我为我糟糕的英语道歉.
我试图在NSUserDefaults中保存这些对象

typedef void (^ExecutionBlock)(void);

@interface OfflineBlockObject : NSObject

@property (nonatomic,copy) ExecutionBlock block;
@property (nonatomic,strong) NSArray<NSMutableArray *> *operandsArray;
@property (nonatomic,strong) NSArray *conditionsArray;

@end

OfflineBlockObject *blockObject = [[OfflineBlockObject alloc] init];
        BOOL first = [self.reservation.reservationID boolValue];
        NSArray *conditions = @[@(first),@(self.shouldCallSetTagsForReservation)];
        NSArray *operands = @[@[[self.reservation json],self.reservation.reservationID ? : @0,self.selectedTags ? : @[]],@[[self.reservation json],@(self.shouldForceApproved),self.selectedTags? : @[]]];
        blockObject.conditionsArray = [conditions copy];
        blockObject.operandsArray = [operands copy];
        @weakify(blockObject);
        blockObject.block = [^{
            @strongify(blockObject);
            if ([blockObject.conditionsArray[0] boolValue]) {
                ReservationsModel *m = [[ReservationsModel alloc] init];
                [m editReservation:blockObject.operandsArray[0][0] success:^(id responSEObject) {
                    if ([blockObject.conditionsArray[1] boolValue]) {
                        [m setReservationTags:blockObject.operandsArray[0][1] tags:blockObject.operandsArray[0][2] success:nil failure:nil];
                    }
                } failure:nil];
            } else {
                self.reservation.eventId = self.reservationEvent.eventInfoID;

                ReservationsModel *m = [[ReservationsModel alloc] init];
                [m createReservation:blockObject.operandsArray[1][0] shouldForceApproved:[blockObject.operandsArray[1][1] boolValue] success:^(id responSEObject) {
                    Reservation *reservation = [Reservation reservationWithJson:responSEObject];
                    if (reservation.reservationID) {
                        if ([blockObject.conditionsArray[1] boolValue]) {
                            [m setReservationTags:reservation.reservationID tags:blockObject.operandsArray[0][2] success:nil failure:nil];
                        }
                    }
                } failure:nil];
            }
        } copy];
        [[OfflineQueueHelper sharedHelper] addTask:blockObject];

但我的块属性变为null

猜你在找的iOS相关文章