Objective c 从单身汉那里获取字符串

Objective c 从单身汉那里获取字符串,objective-c,singleton,Objective C,Singleton,我有一个生成长lat的单态。我可以记录它们,但希望能够获取它们。我做错了什么 辛格尔顿 @interface ClassLocationManager : NSObject <CLLocationManagerDelegate> { NSString *lat; NSString *longt; } @property (nonatomic, strong) CLLocationManager* locationManager; @property (nonato

我有一个生成长lat的单态。我可以记录它们,但希望能够获取它们。我做错了什么

辛格尔顿

@interface ClassLocationManager : NSObject <CLLocationManagerDelegate> {

    NSString *lat;
    NSString *longt;
}

@property (nonatomic, strong) CLLocationManager* locationManager;
@property (nonatomic, retain) NSString *lat;
@property (nonatomic, retain) NSString *longt;

+ (ClassLocationManager*) sharedSingleton; 
称之为m.m的代码

NSString *formatted3 = [[ClassLocationManager sharedSingleton] longt];
NSString *formatted4 = [[ClassLocationManager sharedSingleton] lat];

非常感谢。

您的属性与您的ivar名称不匹配

  • 要么不使用IVAR,要么使用自动创建的IVAR(_long,_lat)

  • 或者最好说self.long=和self.lat=

  • 错误:使用@synthesis使属性使用现有的IVAR


  • --我选择2。

    选项2返回在(id)init中设置的值,但不返回在(void)locationManager.lat中生成的值=[NSString stringWithFormat:@“%d°%d”%1.4f\,度,分,秒];=>self.lat=…和我做的一样-这是一个时间问题-我需要解决如何延迟进程直到结果出来-非常感谢。是的,这是我注意到的另一件事..你正在尝试使异步procc同步。也许你可以在准备好后发送NSNotification
    NSString *formatted3 = [[ClassLocationManager sharedSingleton] longt];
    NSString *formatted4 = [[ClassLocationManager sharedSingleton] lat];