私はObjectivecに少し慣れておらず、興味深い問題に遭遇しました。JSONを使用して、GooglePlacesAPIから検索結果を取得します。これは正常に機能します。場所が見つかったら、ビジネスの詳細を表示する2番目の画面をロードします。これを行うには、placesAPIを介したplacesdetails検索を使用する予定です。2つのビュー間で情報を渡すために、変数を保持するデータクラスを作成しました。
DataClass.h
#import <Foundation/Foundation.h>
@interface DataClass : NSObject {
NSString *Lat;
NSString *Long;
NSString *barLat;
NSString *barLong;
NSString *Ref;
NSString *barName;
}
@property(nonatomic,retain)NSString *Lat;
@property(nonatomic,retain)NSString *Long;
@property(nonatomic,retain)NSString *barLat;
@property(nonatomic,retain)NSString *barLong;
@property(nonatomic,retain)NSString *Ref;
@property(nonatomic,retain)NSString *barName;
+(DataClass*)getInstance;
@end
DataClass.m
#import "DataClass.h"
@implementation DataClass
@synthesize Lat;
@synthesize Long;
@synthesize barLat;
@synthesize barLong;
@synthesize Ref;
@synthesize barName;
static DataClass *instance =nil;
+(DataClass *)getInstance
{
@synchronized(self)
{
if(instance==nil)
{
instance= [DataClass new];
}
}
return instance;
}
@end
私の最初のビューでは、次のように参照値を追加します。
DataClass *obj=[DataClass getInstance];
NSString *barRef = [NSString stringWithFormat:@"%@", searchResult.reference];
obj.Ref = barRef;
searchResult.referenceは有効であり、barRefに入れてNSLogを使用すると正しく出力されますが、objオブジェクトに追加しようとするとアプリがクラッシュします。文字列は次のようになります
"CnRrAAAABX_U5FcybhlJgmWGAv19Fhemk_Bu7ytKKuL33201sKfce2aIzeZ2P8cWdKPV8hCsbUbAzYcoA9QDmbMPeYqCX8idypsQH4LXvGwxW_qtW4jBod2bufelyxeLaBlS1DoNfDtaH4evksVluW9gsqCGcRIQkJXwM_RcSewilknJowaghhoUFoR64jZTUDCsrXvmOqg4eqJx5uU"
使っても
NSStringの* barRef = @ "CnRrAAAABX_U5FcybhlJgmWGAv19Fhemk_Bu7ytKKuL33201sKfce2aIzeZ2P8cWdKPV8hCsbUbAzYcoA9QDmbMPeYqCX8idypsQH4LXvGwxW_qtW4jBod2bufelyxeLaBlS1DoNfDtaH4evksVluW9gsqCGcRIQkJXwM_RcSewilknJowaghhoUFoR64jZTUDCsrXvmOqg4eqJx5uU"。
次に、obj.Ref = barRef; クラッシュします。なぜこれが起こるのか、それを修正する方法はありますか?