2011-09-22 5 views
0

私はここで脳波をしています。だから、別のクラスのプロパティであるNSMutableArrayを調べるメソッドがあります。オブジェクトはNSStringです。デバッガでは、配列に追加しようとしているオブジェクトのNSCFStringが表示されています。だから私は基本的に次の操作を行います。NSArrayにNSStringを追加して、インスタンスに送信された認識できないセレクタ(SIG_ABRT)

- (NSArray *)GetFileNames { 
    NSMutableArray *fileNameArray = [[[NSArray alloc] init] autorelease]; 
    for (NSString *str in self.ParentVC.SelectedOptions) { 
     [fileNameArray addObject:str]; 
     NSLog(@"%@", str); // this works fine 
    } 
    return fileNameArray; 
} 

そして私はでどこかにこの関数を呼び出す:

NSArray *fileNameArray = [[NSArray alloc] initWithArray:[self GetFileNames]]; 

しかし、いくつかの理由で、私は認識されていないセレクタがインスタンスに送信取得し、それがこの行で停止します。私は何か間違っているのですか?問題のトラブルシューティングに役立つ情報はありますか?私はすでにself.ParentVC.SelectedOptionsをチェックしています。これは自分のNSCFStringまたはNSCFStringを表示します。インストゥルメントでこれを行うことができるものは何ですか?ありがとう。

+1

おそらく "NSMutableArray alloc"である必要がありますか? –

+0

@Alan Mooreありがとう!トータル脳波! – Crystal

+0

よろしくお願いします!私は答えとしてそれを置くべきだと思う:P –

答えて

1

オブジェクトの実際の型は、あなたが宣言するものではなく、割り当てるものです

NSMutableArray *fileNameArray = [[[NSMutableArray alloc] init] autorelease]; 

を有する第二のラインを交換してください。投稿されたコードでは、配列は変更できません。

1

このライン:

NSMutableArray *fileNameArray = [[[NSArray alloc] init] autorelease]; 

NSMutableArray *fileNameArray = [[[NSMutableArray alloc] init] autorelease]; 

そうでなければあなたは不変の配列を作成しているであるべき。

関連する問題