Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从URL获取参数_Ios_Iphone_Nsurl - Fatal编程技术网

Ios 如何从URL获取参数

Ios 如何从URL获取参数,ios,iphone,nsurl,Ios,Iphone,Nsurl,在我的应用程序中。当用户在safari浏览器中单击注册时,我将返回应用程序。在应用程序中,我收到url:myApp://?电子邮件=pjayesh999@gmail.com 我想从这个url获取电子邮件的价值。怎么做 我已经这样做了,但这给了我一个错误,没有找到关键值电子邮件: NSString *str=[url valueForKey:@"email"]; 尝试使用URL。查询 NSString *str=url.query; 其中Url是NSUrl的对象 URLParser *pars

在我的应用程序中。当用户在safari浏览器中单击注册时,我将返回应用程序。在应用程序中,我收到url:
myApp://?电子邮件=pjayesh999@gmail.com

我想从这个url获取电子邮件的价值。怎么做

我已经这样做了,但这给了我一个错误,没有找到关键值电子邮件:

NSString *str=[url valueForKey:@"email"];

尝试使用URL。查询

NSString *str=url.query;
其中Url是NSUrl的对象

URLParser *parser = [[[URLParser alloc] initWithURLString:@"myApp://?email=pjayesh999@gmail.com"] autorelease];
NSString *emailVal = [parser valueForVariable:@"email"];
使用下面给出的NSScanner类
URLParser.h

@interface URLParser : NSObject {
NSArray *variables;
}

@property (nonatomic, retain) NSArray *variables;

- (id)initWithURLString:(NSString *)url;
- (NSString *)valueForVariable:(NSString *)varName;

@end
URLParser.m

@implementation URLParser
@synthesize variables;

- (id) initWithURLString:(NSString *)url{
self = [super init];
if (self != nil) {
    NSString *string = url;
    NSScanner *scanner = [NSScanner scannerWithString:string];
    [scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"&?"]];
    NSString *tempString;
    NSMutableArray *vars = [NSMutableArray new];
    [scanner scanUpToString:@"?" intoString:nil];       //ignore the beginning of the string and skip to the vars
    while ([scanner scanUpToString:@"&" intoString:&tempString]) {
        [vars addObject:[tempString copy]];
    }
    self.variables = vars;
    [vars release];
}
return self;
}

- (NSString *)valueForVariable:(NSString *)varName {
for (NSString *var in self.variables) {
    if ([var length] > [varName length]+1 && [[var substringWithRange:NSMakeRange(0, [varName length]+1)] isEqualToString:[varName stringByAppendingString:@"="]]) {
        NSString *varValue = [var substringFromIndex:[varName length]+1];
        return varValue;
    }
}
return nil;
}

- (void) dealloc{
self.variables = nil;
[super dealloc];
}

@end
检查这个答案

这是你真正需要的


最好的

您也可以使用以下代码

NSString *strComplete = @"myApp://?email=pjayesh999@gmail.com";

NSArray *array = [strComplete componentsSeparatedByString:@"?"];

NSLog(@"%@",array);
NSString *strSecond = [array objectAtIndex:1];
NSLog(@"%@",strSecond);

如果对您有帮助,请尝试此选项。

请查看以下链接,您可能会找到答案[there][1][1]: