-1

私はこれを持っています:

partenaire_lat = 48.8160525; 
partenaire_lng = 2.3257800;

そして、次のようなNSStringを取得します。

NSString *endPoint =[NSString stringWithFormat:@"%@,%@", partenaire_lat, partenaire_lng];

そして、あるコンテキストでこのNSStringを使用した後、このばかげたエラーが発生します。

Variable is not a CFString.

しかし、このようにNSStringを作成すると、次のようになります。

endPoint = @"48.8160525,2.3257800"その後、完璧に動作します!

このエラーについて、Variable is not a CFString私は次のことを試みました:

NSString *endPoint1 =[NSString stringWithFormat:@"%@,%@", partenaire_lat, partenaire_lng];
CFStringRef endPoint =(CFStringRef)endPoint1;

使用しようとしましendPointたが、この方法でも機能しませんでした。奇跡的なアイデアはありますか?Thx

EDIT:partenaire_lat and partenaire_lng are both NSString!!
4

4 に答える 4

3

あなたが持っている

partenaire_lat = 48.8160525; 
partenaire_lng = 2.3257800;

あなたは2つの変数がsであると言い続けますが、それらにsをNSString割り当てていませんNSStringNSStringオブジェクトを変数に割り当てる必要があります。オブジェクトNSStringは自動的に作成されません。

したがって、フォーマットされた文字列を使用するように指示している答えは正しいです。あなたは本当にこのようにそれをするべきです:

partenaire_lat = [[NSString stringWithFormat:@"%f", 48.8160525] retain]; 
partenaire_lng = [[NSString stringWithFormat:@"%f", 2.3257800] retain];
于 2011-09-28T15:26:22.033 に答える
2

コードにはいくつかの潜在的な問題があります。

  1. %@形式指定子はオブジェクトパラメータを期待しますが、プレーンフロートを渡すように見えます(確認するのに十分なコンテキストがないため、ここでは間違っている可能性があります)。それが実際に当てはまる場合は、形式を%fに変更して、問題を修正してください。

    NSString *endPoint1 =[NSString stringWithFormat:@"%f,%f", partenaire_lat, partenaire_lng];
    
  2. endPoint1文字列は自動解放され、保持しないと現在のスコープ外では無効になる可能性があります。したがって、別のメソッドで変数を使用しようとする場合は、おそらくそれを保持する必要があります。

于 2011-09-28T14:34:14.653 に答える
2

latとlngとは何ですか?私はfloatまたはdoubleを想定しています。したがって、使用する必要があります[NSString stringWithFormat:@"%f,%f", lat, lng];(または、floatをフォーマットする必要があります)

于 2011-09-28T14:35:02.237 に答える
-1

あなたがする必要があるすべて

NSString *latStr=[[NSNumber numberWithFloat:partenaire_lat] stringValue];
NSString *lngStr=[[NSNumber numberWithFloat:partenaire_lng] stringValue];

そして、これらの2つの文字列でやりたいことは何でもします:)

于 2011-09-28T15:26:16.607 に答える