Urban Airship标签问题

时间:2010-04-11 12:19:43

标签: objective-c iphone apple-push-notifications asihttprequest urbanairship.com

我修改了别名示例代码:

    [request addRequestHeader: @"Content-Type" value: @"application/json"];
    [request appendPostData:[[NSString stringWithFormat: @"{\"alias\": \"%@\"}", self.deviceAlias]
                          dataUsingEncoding:NSUTF8StringEncoding]];

为:

[request addRequestHeader: @"Content-Type" value: @"application/json"];
[request appendPostData:[[NSString stringWithFormat: @"{\"tags\": \"%@\"}", offsetStr]
                                                 dataUsingEncoding:NSUTF8StringEncoding]];

offsetStr是一个包含时区偏移量的字符串(可以是-12到12之间的任意数字)。

出于某种原因,Urban Airship正在将字符串的每个字符变成自己的标记。

我尝试用-替换字符串neg,但结果相同。

怎么了?

1 个答案:

答案 0 :(得分:4)

问题是“标签”应该是一个列表,而不是单个值。通过围绕值的方括号,你会没事的。

[request addRequestHeader: @"Content-Type" value: @"application/json"];
[request appendPostData:[[NSString stringWithFormat: @"{\"tags\": [\"%@\]"}", offsetStr]
                                             dataUsingEncoding:NSUTF8StringEncoding]];

但如果你想在客户端编码JSON,你真的应该使用JSON库,比如json-framework或TouchJSON。