Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 访问AppDelegate属性_Ios_Objective C - Fatal编程技术网

Ios 访问AppDelegate属性

Ios 访问AppDelegate属性,ios,objective-c,Ios,Objective C,我想从AppDelegate向所有其他视图控制器传递一个字符串。我定义了一个名为appName的变量,并为其分配了一个字符串 AppDelegate.h #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @property (strong, nonatomic) UIWindow *window; @property (strong, nonatomi

我想从
AppDelegate
向所有其他视图控制器传递一个字符串。我定义了一个名为
appName
的变量,并为其分配了一个字符串

AppDelegate.h

#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) NSString *appName;

@end
以下实现无权访问
appName
属性。我搞不懂

ViewController1.m

@implementation AppDelegate
@synthesize appName;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    appName=@"SatKacPara";
    return YES;
}
appLabel.text=[(AppDelegate*) [UIApplication shareApplication].delegate ].appName;

您的代码行中有一个简单的输入错误。应该是:

appLabel.text = ((AppDelegate*)[UIApplication sharedApplication].delegate).appName;
但是没有必要使用这样的属性。无需硬编码即可获取应用程序的显示名称

摆脱您的
appName
属性,并将此行代码更改为:

appLabel.text = [NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"];

这样做的好处是,即使您重命名或本地化了应用程序,也可以显示正确的名称。

您的代码行中有一个简单的输入错误。应该是:

appLabel.text = ((AppDelegate*)[UIApplication sharedApplication].delegate).appName;
但是没有必要使用这样的属性。无需硬编码即可获取应用程序的显示名称

摆脱您的
appName
属性,并将此行代码更改为:

appLabel.text = [NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"];

这样做的好处是,即使您重命名或本地化了应用程序,也可以显示正确的名称。

您的代码行中有一个简单的输入错误。应该是:

appLabel.text = ((AppDelegate*)[UIApplication sharedApplication].delegate).appName;
但是没有必要使用这样的属性。无需硬编码即可获取应用程序的显示名称

摆脱您的
appName
属性,并将此行代码更改为:

appLabel.text = [NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"];

这样做的好处是,即使您重命名或本地化了应用程序,也可以显示正确的名称。

您的代码行中有一个简单的输入错误。应该是:

appLabel.text = ((AppDelegate*)[UIApplication sharedApplication].delegate).appName;
但是没有必要使用这样的属性。无需硬编码即可获取应用程序的显示名称

摆脱您的
appName
属性,并将此行代码更改为:

appLabel.text = [NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"];


这样做的好处是,即使您重命名或本地化了应用程序,也可以显示正确的名称。

那么为什么不将其放入常量文件中呢?不适合在应用程序委托中…
((AppDelegate*)[UIApplication sharedApplication].delegate)。appName
!?你是说右边?您似乎有输入错误。为什么要为应用程序名称添加属性?您可以直接从Info.plist轻松获取应用程序的显示名称。使用
NSBundle
infoDictionary
属性。使用
CFBundleDisplayName
键。有了它,如果你更改了应用程序的名称或对其进行了本地化,你就不需要更新任何代码了。为什么不把它放在一个常量文件中呢?不适合在应用程序委托中…
((AppDelegate*)[UIApplication sharedApplication].delegate)。appName
!?你是说右边?您似乎有输入错误。为什么要为应用程序名称添加属性?您可以直接从Info.plist轻松获取应用程序的显示名称。使用
NSBundle
infoDictionary
属性。使用
CFBundleDisplayName
键。有了它,如果你更改了应用程序的名称或对其进行了本地化,你就不需要更新任何代码了。为什么不把它放在一个常量文件中呢?不适合在应用程序委托中…
((AppDelegate*)[UIApplication sharedApplication].delegate)。appName
!?你是说右边?您似乎有输入错误。为什么要为应用程序名称添加属性?您可以直接从Info.plist轻松获取应用程序的显示名称。使用
NSBundle
infoDictionary
属性。使用
CFBundleDisplayName
键。有了它,如果你更改了应用程序的名称或对其进行了本地化,你就不需要更新任何代码了。为什么不把它放在一个常量文件中呢?不适合在应用程序委托中…
((AppDelegate*)[UIApplication sharedApplication].delegate)。appName
!?你是说右边?您似乎有输入错误。为什么要为应用程序名称添加属性?您可以直接从Info.plist轻松获取应用程序的显示名称。使用
NSBundle
infoDictionary
属性。使用
CFBundleDisplayName
键。如果你更改了应用程序的名称或将其本地化,你不需要更新任何代码。即使你的答案的副本也包含相同的打字错误。它应该是((AppDelegate*)[UIApplication sharedApplication].delegate)@T先生,这和我的回答是一样的。你在说什么?我把外方括号改成了括号,就像你在评论中所做的那样。我的意思是shareApplication应该是sharedApplication:)@T先生。我确实错过了。我把注意力集中在括号上。修正了,谢谢。即使你的答案也有同样的错误。它应该是((AppDelegate*)[UIApplication sharedApplication].delegate)@T先生,这和我的回答是一样的。你在说什么?我把外方括号改成了括号,就像你在评论中所做的那样。我的意思是shareApplication应该是sharedApplication:)@T先生。我确实错过了。我把注意力集中在括号上。修正了,谢谢。即使你的答案也有同样的错误。它应该是((AppDelegate*)[UIApplication sharedApplication].delegate)@T先生,这和我的回答是一样的。你在说什么?我把外方括号改成了括号,就像你在评论中所做的那样。我的意思是shareApplication应该是sharedApplication:)@T先生。我确实错过了。我把注意力集中在括号上。修正了,谢谢。即使你的答案也有同样的错误。它应该是((AppDelegate*)[UIApplication sharedApplication].delegate)@T先生,这和我的回答是一样的。你在说什么?我把外方括号改成了括号,就像你在评论中所做的那样。我的意思是shareApplication应该是sharedApplication:)@T先生。我确实错过了。我把注意力集中在括号上。修好了,谢谢。