小编Coa*_*sty的帖子

读取在Objective C中解析XML的CDATA部分

我正在通过解析谷歌天气api的示例iphone教程,api似乎不再存在所以我已经找到了另一种选择.本教程使用libxml2和xpath查询来解析xml文件.我成功地解析了大部分数据.我遇到的问题是天气符号的图标网址包含在CDATA部分中:

 <weatherIconUrl><![CDATA[http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0010_heavy_rain_showers.png]]></weatherIconUrl>
Run Code Online (Sandbox Code Playgroud)

我知道xpath无法读取CDATA中包含的项目.无论如何从标签中提取这些数据?

iphone objective-c

2
推荐指数
1
解决办法
2058
查看次数

NSURL例外

我试图从数组中获取NSURL的路径值,以便在我的应用中设置图标.我得到了

NSInvalidArgumentException',原因:' - [__ NSArrayI length]:无法识别的选择器发送到实例0x5622590.

如果我使用nslog,我会得到预期的输出:

NSLog(@"%@",[[wforecast.wicons objectAtIndex:0]valueForKey:@"nodeContent"]);
Run Code Online (Sandbox Code Playgroud)

这给了我:

在此输入图像描述

我将值设置如下

NSURL *urlpath;

NSString *urls = [[wforecast.wicons objectAtIndex:0] valueForKey:@"nodeContent"];

urlpath = [NSURL URLWithString:(NSString *)urls];
Run Code Online (Sandbox Code Playgroud)

我很欣赏这是一种漫长的做事方式,但我试图分解各个组件,以找出出了什么问题,但我不知所措!

iphone cocoa objective-c

2
推荐指数
1
解决办法
3059
查看次数

可达性最佳实践

我的应用程序提取了一个json数据源,我刚刚将可访问性检查添加到app delegate中的applicationDidBecomeActive.如果网络是可联系的,则加载视图控制器.从视图控制器中调用解析器类,该类填充UITableview.如果网络不可联系,则会显示警报.如果用户按下主页按钮,则激活无线或蜂窝数据,然后返回应用程序,视图控制器将被加载.虽然这有效但解决方案并不是特别优雅,因为每次用户在放入后台后返回应用程序时,视图控制器调用都会再次运行.我想知道是否有更好的选择?

AppDelegate.m

  - (void)applicationDidBecomeActive:(UIApplication *)application {

// Check for network connectivity

reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];

NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];

if(remoteHostStatus == NotReachable) {
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Connection Error" message:@"App cannot connect to the internet" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];
    self.internetActive = NO;
}


else {

    NSLog(@"internet available");
    self.internetActive = YES;

}


// if internet available call viewcontroller;

if (self.internetActive) {
    navController.viewControllers = [NSArray arrayWithObject:viewController];
    [window addSubview:navController.view];
    [window makeKeyAndVisible];
}
else {
    //error pic …
Run Code Online (Sandbox Code Playgroud)

c iphone cocoa objective-c

0
推荐指数
1
解决办法
2301
查看次数

标签 统计

iphone ×3

objective-c ×3

cocoa ×2

c ×1