2014-12-05 30 views
0

我知道这可能是一个天真的问题,但它对我来说是一个问题。现在我已经在applicationDidFinishLaunching中声明了对象。如何使用此对象的applicationDidFinishLaunching 外如何使用这些对象在按钮操作功能例如objective c如何从外部访问applicationDidFinishLaunching变量

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
// Insert code here to initialize your application 
AKanji *test2=[[AKanji alloc] init]; 
........ 
    } 



- (IBAction)kButton:(id)sender { 
    //iwant to access test 2 here 

    } 
+0

Wha t是面向对象代码和实例变量的知识史吗? – Wain 2014-12-05 09:46:13

+0

我对他们很陌生。对不起,我搜索了网络机器人没有找到任何答案 – 2014-12-05 09:48:47

+0

你应该阅读https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html#//apple_ref/doc/uid/TP40011210-CH1-SW1,并通过https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html#//apple_ref/doc/uid/TP40011210- CH5-SW2了解这部分 – Wain 2014-12-05 09:52:30

回答

0

AppDelegate.h,输入您想创建实例

#进口文件AKanji.h

@interface AppDelegate : UIResponder 
@property(nonatomic, strong) AKanji *test2; 
@end 
在AppDelegate.m

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
       // Insert code here to initialize your application 
       _test2 =[[AKanji alloc] init]; 
       ........ 
    } 

在ViewController.m

#import AppDelegate.h 

- (IBAction)kButton:(id)sender { 
    //iwant to access test 2 here 
    AppDelegate *delegate = [UIApplication sharedApplication].delegate; 
    // Now you can access using delegate.test2 

} 
-1

的AppDelegate类具有一个初始化为任何其他类。 因此它可以有@properties。 因此,在init中,您可以对元素进行任何初始化,然后可以在整个类中使用。

+0

知道了,所以我必须声明它们作为属性来访问它们,哪里是对的?非常感谢 – 2014-12-05 09:59:49

+0

hup @ AlaaAhmadM.Zakaria一般属性是在课堂上可以访问的变量。如果你把它们放在.m文件里面(只在课堂内),如果你把它们放在外面.h – wolffan 2014-12-05 10:21:23

2

首先,您应该了解什么是面向对象的编程语言及其正确使用。

现在来到您的问题部分。根本不可能在其他方法中访问本地变量。一旦范围/寿命结束,它就会被创建并被销毁。 (在你的情况下,它是一个本地变量)

为了达到这个目的,你需要使用一个ivar/property,在该方法中赋值,然后你可以在别处访问它。

+0

aha我现在明白了。非常感谢 – 2014-12-05 10:02:11

0

我相信你必须在applicationDidFinishLaunching大括号之外移动你的Kanji * test2。你应该仍然可以在那里分配/初始化它,如果这是你想要做的,你也可以在kButton中看到它。

+0

非常感谢我得到它我将它作为财产 – 2014-12-05 10:04:22

+0

祝你好运。干杯。 – hft 2014-12-05 10:05:54