我正在遵循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这样的打开URL会调用[[ProfileViewController alloc] initWithId:1 name:@"John Doe"],但是,事实并非如此。每次我打开所说的URL都会调用默认的TTWebController类。

使用单个参数,即x://profile/(initWithId:)之类的东西做对了,那就是调用[[ProfileViewController alloc] initWithId:1]

我在这里想念什么吗?如何在Three20和TTURLMap中使用多参数映射?

最佳答案

问题是“ x:// profile / 1 / John Doe”未正确设置为URL格式。建立网址时,请尝试以下方法:

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


请享用!

/ mtr

关于iphone - 使用Three20和TTURLMap进行多参数映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3182585/

10-11 12:15