1

これは、 componentsJoinedByStringがEXC_BAD_ACCESSを与えるのとまったく同じ問題であると確信しています。

基本的に、配列は次のコードを使用して入力され、ARCがオンになっています。

-(NSMutableArray *)getArrayOfCommaSeparatedSelectorStrings{
    NSMutableArray *Array = [[NSMutableArray alloc] init];
    for(NSMutableArray *e in [self getArrayOfSelectorArrays]) {
        [Array addObject:[displayCSSInformation returnArrayAsCommaList:e]];
    }
        return Array;
}

次に、displayCSSInformationは、次のメソッドを使用してコンマ区切りのリストを返そうとします。

+(NSString *)returnArrayAsCommaList:(NSMutableArray *)ToBeConverted{
    NSString *test = [ToBeConverted componentsJoinedByString:@", "];
    return test;
}

ご協力いただきありがとうございます。

4

1 に答える 1

0

メソッドが別のメソッドを呼び出すだけの場合は、通常、別のメソッドを使用する必要はありません。+returnArrayAsCommaList:メソッドを削除componentsJoinedByString:し、配列で直接使用してください。

- (NSMutableArray *) getArrayOfCommaSeparatedSelectorStrings
{
    NSMutableArray *array = [[NSMutableArray alloc] init];
    for (NSMutableArray *e in [self getArrayOfSelectorArrays])
        [array addObject:[e componentsJoinedByString:@", "]];

    return array;
}

それでもエラーが発生する場合は、上記が機能するはずです (私の小さなテスト例では機能します)。

  1. getArrayOfSelectorArraysが実際に文字列の配列の配列を返していることを確認してください。出力をコンソールに記録するか、デバッガーでステップスルーします。

  2. 「Build & Analyze」オプションを使用して、静的アナライザーに問題がないかチェックさせます。これは ARC ではそれほど問題ではありませんが、初期化されていない値を使用するなどの問題は引き続き発生します。

  3. Core Foundation オブジェクトから所有権を適切にブリッジしていることを確認してください。

于 2013-01-15T12:29:30.327 に答える