我正在关注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进行多参数映射?
答案 0 :(得分:3)
问题是“x:// profile / 1 / John Doe”没有正确格式化为URL。在构建URL时,请尝试以下方法:
NSString *URL = [NSString stringWithFormat:@"x://profile/%d/%@", 1,
[@".." stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
享受!
/ MTR