2011-08-07 10 views
0

まず、問題を解決しようとしてくれた皆様に感謝します。私は一種のノービーなので、どんな助けもありがたいです。componentsSeperatedByStringの問題を使用してNSStringをNSArrayに変換する問題

ウェブサイトからコンテンツを取得したと宣言しました(NSString *data)。私はデータが文字列内にあり、適切であることをコードのさまざまな部分を通してテストしました。

列のデータは以下のとおりになる:

何とか2222 3333 1111 222 444 5555、< BR/>何とか3333、4444、2222 333 555、< BR/>何とか4444 、5555,3333 444 666

このパターンはしばらく続く。私は配列でこのデータを解析したいので、 "、"で区切っています。したがって、私は(NSArray *storage)と呼ばれる配列を宣言し、私はそれからでしょう。

storage = [dat componentsSeperatedByString:","]; 

私はその後、(UILabel *label)と呼ばれるラベルを持っています。それはインタフェースビルダーを介して接続され、プロパティは合成され、合成されます。

私は、行く:

label.text = [storage objectAtIndex:0]; 

私は、iPhoneシミュレータを実行し、私は変更が有効になります私のアプリでボタンを押すと、iPhoneのシミュレータは、すべてのアプリケーションが配置されているホーム画面に存在します。 なぜこれが起こっていますか?なぜそれが表示されないblah 2222

ありがとうございます!

+0

XCodeでデバッグ/コンソールペインの内容を確認できますか?クラッシュのスタックフレームを提供する必要があります。 – mmccomb

+0

ここで指定したコードは正しいです、あなたのアプリはおそらく他の場所でクラッシュしています。スタティックアナライザを最初に実行してみてください(Xcode 4ではshift + cmd + B)。 –

+0

@ficheck私はスタティックアナライザーを実行し、すべてが "okay"に戻ります – Jimmy13

答えて

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]; 
1

componentsSeparatedByString:は自動解放配列を返します。 storageの配列は、ボタンをタップするとすでに割り当てが解除されている可能性があります。インスタンス変数に直接代入するのではなく、配列の保持されたプロパティを使用します。

+0

あなたは正しいと思います。保持された財産はどのように使用するのですか? @property(nonatomic、retain)NSSarray *ストレージを意味しますか? ありがとうもう一度 – Jimmy13

+0

はい、.mファイルのプロパティを '@ synthesize'して、' storage = ... 'の代わりに単に' self.storage = ... 'を使うことを忘れないでください。 – omz

関連する問題