我正在使用Google Endpoints后端访问Google云端硬盘并将内容返回到iOS应用程序。 为此,我在Google Endpoints for Java上使用Google API客户端和Google Drive SDK。然后,我为我的终端生成iOS客户端库,并在我的iOS项目中使用它和iOS API Client Client。
我遇到的问题是我的一个端点返回一个包含Google Drive的File
个对象的对象。
在iOS开始处理这些对象之前,一切似乎都很好。在端点响应中,客户端库在iOS中读取Google云端硬盘File
为GTLDriveFile
,这是Google Drive SDK for iOS的相应类别。但是,在尝试访问对象的某些成员时,例如name
和modifiedTime
,我遇到了崩溃问题。
起初我认为这是因为我使用的是一个非常过时的Google API客户端的cocoapod(我查看了源代码并看到了类中很多缺少的字段)。
在经历了在iOS项目中手动包含Google API客户端的麻烦之后(由于Google的错误/过时指示导致很多麻烦)尽管GTLDriveFile
的某些字段现在是name
可用,我仍然会在modifiedTime
字段崩溃。
经过调查,我发现通过API资源管理器的Google Drive Rest API会返回modifiedTime
的字符串:
...
"kind": "drive#file",
...
"modifiedTime": "2016-02-08T16:34:22.127Z",
...
但是,我的Google端点响应正在返回一个对象
...
"kind": "drive#file",
...
"modifiedTime": {
"value": "1454513589789",
"dateOnly": false,
"timeZoneShift": 0
},
...
因此,我的iOS GTLDriveFile
类在尝试解析字符串时实际上正在处理NSDictionary
在端点上,我正在使用最新版本:Google API客户端(和依赖项)是1.21.0以及Drive Rest API v3-rev8-1.21.0。在iOS上,我正在使用Google API Client for Objective-C
的新克隆我已检查API discovery documents for Google Drive,modifiedTime
字段应该是一个字符串,所以我认为问题可能出在Google端点上。
有关Google端点未正确转换File
对象的原因的任何线索吗?