【发布时间】:2012-10-21 11:43:00
【问题描述】:
我刚开始使用 Amazon Web Services SimpleDB 开展一个项目。
在一种方法中,我试图通过使用select query 来确定一个域已经包含多少项目。
代码如下所示:
AmazonSimpleDBClient *dbClienet = [[AmazonSimpleDBClient alloc]initWithAccessKey:_secret withSecretKey:_hiddenSecret];
NSString *countRequestString = [NSString stringWithFormat:@"select count(*) from %@",domain];
SimpleDBSelectRequest *countRequest = [[SimpleDBSelectRequest alloc]initWithSelectExpression:countRequestString];
SimpleDBSelectResponse *countResponse = [dbClienet select:countRequest];
这很好用。例如:连接有效,当我记录它时,响应似乎也是正确的:
{Items: (
"{Name: Domain,AlternateNameEncoding: (null),Attributes: (\n \
"{Name: Count,AlternateNameEncoding: (null),Value: 2,AlternateValueEncoding: (null),<SimpleDBAttribute: 0x756f730>}\"\n),<SimpleDBItem: 0x7529d00>}"),NextToken: (null),{BoxUsage: 0.000023,{requestId: b683ed01-9e5f-9041-1ace-cbb0fdfaa799}}}
我接下来要做的是将值2 保存到NSInteger itemCount 中。这是我挣扎的地方。
我尝试了几件事,我最远的是:
NSInteger itemCount = [[[[[countResponse.items objectAtIndex:0]attributes]objectAtIndex:1]value]integerValue];
这在我看来应该有效。但它会抛出错误:
Multiple methods named 'value' found with mismatched result, parameter type or attributes
谁能指出我哪里出错了?我真的被困在这里了。
谢谢,塞巴斯蒂安
【问题讨论】:
-
我建议将括号内的行分成单独的部分。我对价值呼吁持怀疑态度。我想我会先获取属性数组,然后获取键的对象:“Value”,确保它是 NSNumber,然后获取 intValue。
-
但是如果你把它分解成这样的部分,那么它会更容易识别它在哪里分解。
-
这些链接也描述了这个错误。请查看并可能解决您的问题 - stackoverflow.com/questions/7770872/… stackoverflow.com/questions/12434167/…
-
我会试试然后回到这里:)
标签: objective-c ios amazon-web-services amazon-simpledb