Code for deleting row in google sheet not working

173 views
Skip to first unread message

Jim Kardach

unread,
Jul 7, 2020, 10:48:31 PM7/7/20
to Google APIs Client Library for Objective-C
Hi,

I've been trying to use the "google API Library for Objective-C for Rest" to delete a row from a spreadsheet.  I wrote a method for this, but it generate a run-time Error from the execution of the query.

GTLRRuntimeCommon: jsonFromAPIObject expected class 'GTLRSheets_Request' instead got 'GTLRSheets_DeleteDimensionRequest'


Any help would be appreciated on figuring out what is wrong with this code.

- (void)deleteRow:(int) row {

    GTLRSheets_DeleteDimensionRequest *delDimReq = [[GTLRSheets_DeleteDimensionRequest alloc] init];

    GTLRSheets_Request *sheetsRequest = [[GTLRSheets_Request alloc] init];

    sheetsRequest.deleteDimension = delDimReq;

    

    

    GTLRSheets_DimensionRange *range = [[GTLRSheets_DimensionRange alloc] init];

    range.dimension = @"ROWS";

    range.sheetId = 0;

    range.startIndex = @(row)// row to delete inclusive

    range.endIndex = @(row + 1);    // row to delete exclusive

    

    delDimReq.range = range;

    

    GTLRSheets_BatchUpdateSpreadsheetRequest *request = [[GTLRSheets_BatchUpdateSpreadsheetRequest alloc] init];

    request.includeSpreadsheetInResponse = 0;

    request.responseIncludeGridData = 0;

    request.requests = @[delDimReq];


    //(GTLRSheets_BatchUpdateValuesRequest *)

    

    GTLRSheetsQuery_SpreadsheetsBatchUpdate *query = [GTLRSheetsQuery_SpreadsheetsBatchUpdate

                                                      queryWithObject:(GTLRSheets_BatchUpdateSpreadsheetRequest *) request

                                                      spreadsheetId: ACT_SHEET_ID];

    

    [self.sheetService executeQuery:query

                      completionHandler:^(GTLRServiceTicket *ticket,

                                          GTLRSheets_ValueRange *result,

                                          NSError *error) {

            if (error == nil) {

                [self readLog];

        

            } else {

                NSString *message = [NSString stringWithFormat:@"Error getting update sheet data: %@\n", error.localizedDescription];

                [self showAlert:@"Error" message:message];

            }

        }];

}

..

Jim Kardach

thom...@google.com

unread,
Jul 8, 2020, 10:48:22 AM7/8/20
to Google APIs Client Library for Objective-C
Looking at the generated headers, it looks like you have to use wrap your `GTLRSheets_DeleteDimensionRequest` within a `GTLRSheets_Request` to then put it into the `requests` field.
Reply all
Reply to author
Forward
0 new messages