使用Three20和TTURLMap进行多参数映射

时间:2010-07-05 23:01:41

标签: iphone objective-c three20

我正在关注this教程并在我的应用代理中声明以下映射:

[map from:@"x://profile/(initWithId:)/(name:)" toViewController:[ProfileViewController class]];
[map from:@"*" toViewController:[TTWebController class]];

ProfileViewController.m中,我实现了- (id)initWithId:(int)anIdentifier name:(NSString *)name选择器来处理这种映射。我认为像x://profile/1/John Doe这样的开放网址会调用[[ProfileViewController alloc] initWithId:1 name:@"John Doe"],但是,情况似乎并非如此。每次打开所述URL时都会调用默认的TTWebController类。

使用单个参数,即x://profile/(initWithId:)之类的东西是正确的,即调用[[ProfileViewController alloc] initWithId:1]

我在这里错过了什么吗?如何使用Three20和TTURLMap进行多参数映射?

1 个答案:

答案 0 :(得分:3)

问题是“x:// profile / 1 / John Doe”没有正确格式化为URL。在构建URL时,请尝试以下方法:

NSString *URL = [NSString stringWithFormat:@"x://profile/%d/%@", 1,
                 [@".." stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];

享受!

/ MTR