NSMutableDictionary *dict = @{}.mutableCopy;
    dict[@"lockMac"] = scanModel.lockMac;
    dict[@"lockName"] = scanModel.lockName;
    dict[@"lockVersion"] = scanModel.lockVersion;

// 只有酒店专用的锁才需要配置以下三个参数
//    dict[@"hotelInfo"] = @"xxxx";
//    dict[@"buildingNumber"] = @10;
//    dict[@"floorNumber"] = @3;

    [TTLock initLockWithDict:dict success:^(NSString *lockData, long long specialValue) {
        //初始化成功 上传lockData

        /* 
        [Network uploadLockData:lockData success:^(){
            NSLog(@"##############  Upload lockData success  ##############");
        } failure:^(NSError *error){
            因网络问题上传lockData失败,我们建议您调用sdk的重置锁接口,将锁恢复到可初始化状态,否则该锁蓝牙扫描的 isInited 一直为YES, 需要手动长按锁的重置键,锁才能恢复到可初始化状态
            [TTLock resetLockWithLockData:success:failure:];
        }];
       */
    } failure:^(TTError errorCode, NSString *errorMsg) {
        NSLog(@"##############  error: %@  ##############",errorMsg);
    }];

 NSMutableDictionary *dict = @{}.mutableCopy;
    dict[@"lockMac"] = scanModel.lockMac;
    dict[@"lockName"] = scanModel.lockName;
    dict[@"lockVersion"] = scanModel.lockVersion;

// Only hotel lock need to be set
//    dict[@"hotelInfo"] = @"xxxx";
//    dict[@"buildingNumber"] = @10;
//    dict[@"floorNumber"] = @3;

    [TTLock initLockWithDict:dict success:^(NSString *lockData, long long specialValue) {
        //Init lock success , then upload lockData

        /* 
        [Network uploadLockData:lockData success:^(){
            NSLog(@"##############  Upload lockData success  ##############");
        } failure:^(NSError *error){
           //You should reset the lock after upload lockData failed, otherwise the lock can't be initialized again
            [TTLock resetLockWithLockData:success:failure:];
        }];
       */
    } failure:^(TTError errorCode, NSString *errorMsg) {
        NSLog(@"##############  error: %@  ##############",errorMsg);
    }];