1

私はiPhone開発の初心者で、EXC_BAD_ACCESSエラーが発生します。

私の.hファイルで私は宣言します:

NSString *myString;

.mファイルには、次の2つの方法があります。

1.CLLocationManagerインターフェイスの(void)locationManagerを実行すると、次のようになります。

myString = [NSString stringWithFormat:@"%lf",loc.longitude];
NSLog(@"%@",myString); // it works

2.A(void)sendPositionメソッド:

NSLog(@"%@",myString); // EXC_BAD_ACCESS

手伝って頂けますか?

4

2 に答える 2

2
  1. 文字列を保持します。

    myString = [[NSString stringWithFormat:@"%lf",loc.longitude] 保持];

  2. 次に、このクラスの dealloc メソッドで (または追加して)

    -(void) dealloc{ [スーパー dealloc]; [myString リリース]; }

.h ファイルで myString を宣言していると仮定すると、これで修正されるはずです。

于 2010-07-26T10:23:31.500 に答える
1

locationManager メソッドのどこかに myString を保持していますか? そうでない場合は、-dealloc メソッドで解放する必要があります。そうしないと、今起こっていることだと思うように、消えてしまう可能性があります。メモリ管理のルールを読んでください。

私がお勧めするのは、クラスで値を自動的に保持するプロパティを作成し、文字列を作成するときにドット表記で割り当てることです。繰り返しますが、dealloc メソッドで解放します。これは、このタイプのコードでは最近慣用的です。

于 2010-07-26T10:20:28.153 に答える