使用componentsSeperatedByString问题将NSString转换为NSarray

时间:2011-08-07 15:58:14

标签: objective-c mobile

首先,我要感谢大家试图解决我的问题。我是一个noobie,所以任何帮助将不胜感激。

我已声明(NSString *data)已从网站检索内容。我已经通过我的代码的各个部分测试了数据是否在字符串中并且它是正确的。

字符串中的数据完全如下:

  

blah 2222,3333,1111 222 444 5555,< br /> blah 3333,4444,2222   333 555,< br /> blah 4444,5555,3333 444 666

这种模式持续了一段时间。我想在数组中解析这些数据,因此用“,”分隔。因此;我声明了一个名为(NSArray *storage)的数组,然后我会这样做:

storage = [dat componentsSeperatedByString:","];

然后我有一个名为(UILabel *label)的标签。它通过接口构建器连接,属性设置和合成。

然后我去了:

label.text = [storage objectAtIndex:0];

我运行Iphone模拟器,当我按下我的应用程序中的按钮将激活更改时,iphone模拟器存在于所有应用程序所在的主屏幕。 为什么会这样?为什么不显示blah 2222

谢谢!

2 个答案:

答案 0 :(得分:1)

componentsSeparatedByString:返回一个自动释放的数组。点击按钮时,您的storage数组可能已被取消分配。使用数组的保留属性,而不是直接将其分配给实例变量。

答案 1 :(得分:0)

你可以使用这段代码:

NSString *data = @"blah 2222, 3333, 1111 222 444 5555,<br/> blah 3333, 4444, 2222 333 555, <br/> blah 4444, 5555, 3333 444 666";  
NSArray *storage = [data componentSeparatedBy:@","];  
NSString *first= [data objectAtIndex:0];  
NSString *second = [data objectAtIndex:1];
///... and so on
//or 
label.text = [data objectAtIndex:2];