Ios 如何从另一个类调用变量
首先,你们知道有什么好的教程网站或书籍可以学习如何为iOS6编写代码吗 现在来看手头的问题,我有一个AppDelegate类和一个ViewController类 我正在使用AppDelegate类查找我的当前位置并将其另存为NSString 我在ViewController类中有一个标签,我想在其中显示我的位置 在java中,我通常只做这样的事情Ios 如何从另一个类调用变量,ios,variables,gps,Ios,Variables,Gps,首先,你们知道有什么好的教程网站或书籍可以学习如何为iOS6编写代码吗 现在来看手头的问题,我有一个AppDelegate类和一个ViewController类 我正在使用AppDelegate类查找我的当前位置并将其另存为NSString 我在ViewController类中有一个标签,我想在其中显示我的位置 在java中,我通常只做这样的事情 label.text = AppDelegate.myLocationString; 但我对目标c还相当陌生,我不知道如何做到这一点。老实说,我甚至
label.text = AppDelegate.myLocationString;
但我对目标c还相当陌生,我不知道如何做到这一点。老实说,我甚至不确定我是否对这种语言采取了正确的方法。在目标c中有没有其他方法来解决这个问题
我已经试着四处搜索如何做到这一点,但我甚至不确定我的搜索措辞是否正确,所以我不知道我的搜索方向是否正确
如能提供任何帮助,我们将不胜感激
我现在的代码:
AppDelegate.h
#import <UIKit/UIKit.h>
#import CoreLocation/CoreLocation.h
@class BIDViewController;
@interface BIDAppDelegate : UIResponder <UIApplicationDelegate, CLLocationManagerDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) BIDViewController *viewController;
@property (strong, nonatomic) CLLocationManager *locationManager;
@property (strong, nonatomic) NSString *myPosition;
@end
在ViewController中
BIDAppDelegate *appDelegate = (BIDAppDelegate *)[UIApplication sharedApplication].delegate;
[positionLabel setText:appDelegate.myPosition];
如何从另一个类调用变量
假设您在ClassB
ClassA *aObj=... ; //create an object of ClassA
aObj.propertyName=...;//set the property or ivar
NSString *string=aObj.propertyName;//retrieve it
你们知道有什么好的教程网站或书籍可以学习如何使用吗 iOS6的代码
要从视图控制器引用应用程序委派,请首先导入其定义(您已经准备好了): 然后在代码中获取委托:
BIDAppDelegate *appDelegate = (BIDAppDelegate *)[[UIApplication sharedApplication] delegate];
CLLocation *location = appDelegate.locationManager.location;
然后从代理获取位置:
BIDAppDelegate *appDelegate = (BIDAppDelegate *)[[UIApplication sharedApplication] delegate];
CLLocation *location = appDelegate.locationManager.location;
然后对location对象调用您喜欢的任何方法:
NSString *descr = location.description;
或通过以下方式获得预先计算的位置:
NSString *position = appDelegate.myPosition;
我得到一个错误,这一行的“used type‘BIDAppDelegate’,其中需要算术或指针类型”,BIDAppDelegate*appDelegate=(BIDAppDelegate)[[UIApplication sharedApplication]delegate]@伊恩:我最初的编辑遗漏了一个
*
。它应该是(BIDAppDelegate*)
。另外,感谢您的回复,当我阅读了您的评论后,我意识到您的做法会带来更多好处sense@Ian没问题。此外,Marco Pace的回答也值得注意,因为他展示了如何实际设置标签文本。是的,明白了!:我非常感谢你。我现在已经掌握了这门语言的诀窍,但它相当棘手!
NSString *descr = location.description;
NSString *position = appDelegate.myPosition;