如何使用NSRegularExpression在"badgeCount"标记之间提取值"6".以下是服务器的响应:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><badgeCount>6</badgeCount><rank>2</rank><screenName>myName</screenName>
Run Code Online (Sandbox Code Playgroud)
以下是我尝试但未取得成功的代码.实际上它进入了其他部分并打印"正则表达式的值是零":
NSString *responseString = [[NSString alloc] initWithBytes:[responseDataForCrntUser bytes] length:responseDataForCrntUser.length encoding:NSUTF8StringEncoding];
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?<=badgeCount>)(?:[^])*?(?=</badgeCount)" options:0 error:&error];
if (regex != nil) {
NSTextCheckingResult *firstMatch = [regex firstMatchInString:responseString options:0 range:NSMakeRange(0, [responseString length])];
NSLog(@"NOT NIL");
if (firstMatch) {
NSRange accessTokenRange = [firstMatch rangeAtIndex:1];
NSString *value = [urlString substringWithRange:accessTokenRange];
NSLog(@"Value: %@", value);
}
}
else
NSLog(@"Value of regex is nil");
Run Code Online (Sandbox Code Playgroud)
如果您能提供非常感谢的示例代码.
注意:我不想使用NSXMLParser.
我在我的应用程序中使用最新的facebook ios sdk.为了实施SSO,Facebook说:
修改应用程序的主AppDelegate类,如下所示:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
Run Code Online (Sandbox Code Playgroud)
在此方法中,调用应用程序的Facebook对象的handleOpenURL方法,确保传入url参数.
我的查询是:
上面的方法有什么用?为什么叫它?如果我在Facebook演示应用程序中隐藏该方法,它总是会一次又一次地重定向到登录页面.如果我取消隐藏此方法,它会将我重定向到使用其他按钮选项退出(这是正确的)
现在,因为此方法在ApplicationDelegate.m文件中定义,我们必须在其中调用facebook对象.如何在此方法中引用facebook对象,因为我的facebook对象是在视图控制器类中定义的,该类是层次结构的4倍.
注意:我已经尝试过DemoApp.我不明白它们是如何在AppDelegate.m文件中引用facebook对象的,尽管在ViewController文件中声明了facebook对象.