Code for deleting row in google sheet not working

208 views
Skip to first unread message

Jim Kardach

unread,
Jul 7, 2020, 10:48:31 PM 7/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 AM 7/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