2010-11-30 15 views
0

私はNSMutableArrayを持っています。私は文字列に変換しようとしています。メソッド内
私NSMutableArrayの宣言 ...componentsJoinedByStringは私にEXC_BAD_ACCESSを与えます

NSMutableArray *listData; 

以降...

NSString *foo = [listData componentsJoinedByString:@"|"]; 
NSLog(@"%@",foo); 

それは関係なく、私はEXC_BAD_ACCESSを取得しておくしようと思えるん。
私の配列の各要素は、私もこれを試してみましたNSStringのだったことを確認する...

NSMutableArray *mArray = [[NSMutableArray alloc] init]; 
for (id ln in listData) { 
    NSString *boo = [NSString stringWithFormat: @"%@",ln]; 
    [mArray addObject:boo]; 
} 
NSString *foo = [mArray componentsJoinedByString:@"|"]; 
NSLog(@"%@",foo); 

私は同じ方法または私のクラス内の他の方法でオブジェクトを削除/追加することによって、私NSMutableArrayのを操作することができます。しかし、 "componentsJoinedByString"を試してみると、エラーがポップアップします。誰もが任意のアドバイスや別の方法が私は単一のNSStringにこの配列を組み合わせることができますか?

+1

どのようにして 'listData'を作成して配置していますか? – paulbailey

+0

私のクラスのヘッダーファイルでは、私はlistDataプロパティを宣言しています。 @property(非構造、保持)NSMutableArray * listData;私の.mファイルでは、私はそれを合成してリリースしています。 loadListという別のメソッドを使ってリストを作成し、格納されたplistファイルからデータを取得します。 "NSMutableArray * tmpList = [[NSMutableArray alloc] initWithContentsOfFile:filePath]; return tmpList;" –

答えて

1

あなたが指定したコードでは、listDataの場合はNSMutableArrayになりません。コードのある時点で、コードを作成して、おそらくそれを作成する必要があります。

編集 さて、あなたはここでは、メモリ管理の問題に入る、それでは少し鮮明に許すことができるので:

あなたは、インスタンス変数のgetterとsetterを合成しているので、それらを使うようにするとよいでしょうそれにアクセスするために、彼らは適切に保持し、解放する世話をするでしょう。ご希望の場合は、単に

self.listData = [listManage getList:[[NSUserDefaults standardUserDefaults] stringForKey:@"list_name"] list:@"LIST"]; 

または

[self setListData:[listManage getList:[[NSUserDefaults standardUserDefaults] stringForKey:@"list_name"] list:@"LIST"]]; 

を使用することができますlistData設定するには

+1

ありがとうPaul!だから私のクラスloadViewで私は "NSMutableArray * listData = [[NSMutableArray alloc] init];" 私は私のリストに "listData = [listManage getList:[[NSUserDefaults standardUserDefaults] stringForKey:@" list_name "]リストを入れました:@" LIST "];"これで問題は解決しました。私はローカル宣言を得るが、インスタンス変数の警告を隠す。初心者であることは嫌ですが、クラス全体でアクセス可能なNSMutableArrayの作成方法を完全に理解しようとしています。 (あなたの答えをupvoteするのに十分な評判ポイントではありませんが、もう一度ありがとう!) –

+0

あなたが好きなら、それを正しいものとしてマークすることができます! ;-)インスタンス変数としてlistDataがある場合は、 'listData = [[NSMutableArray alloc] init];' – paulbailey

+0

を使用すれば、電球は 'ding'になります! –

関連する問題