gpt4 book ai didi

ios - 创建类的实例返回警告?

转载 作者:行者123 更新时间:2023-11-28 21:54:38 25 4
gpt4 key购买 nike

我正在学习 Objective-C 中的类。我创建了一个名为“CurrencyConverter”的类。

据我所知,有不止一种方法可以在另一个文件中创建此类的实例。所以在我的 AppDelegate.h 中,我使用变量类型“id”创建了一个实例,如下所示:

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{

id currencyConverter;

}

所以在我的 AppDelegate.m 中,我可以像这样声明它而不会发出任何警告:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

currencyConverter = [[CurrencyConverter alloc] init];

return YES;

}

但是,当我像下面这样创建我的类的实例时,我收到一条警告,指出“未使用的变量:myCC”

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

CurrencyConverter *myCC = [[CurrencyConverter alloc] init];

return YES;

}

请注意,我没有在 Appdelegate.h 中创建“myCC”的实例,我只是为“currencyConverter”创建了该实例。另请注意,我做了

#import "CurrencyConverter.h"

在我的 Appdelegate.m 的顶部

所以我的问题是,为什么一种创建类实例的方法没有警告,而另一种方法却有?从技术上讲,它们不是都没有使用过吗?...

最佳答案

CurrencyConverter *myCC = [[CurrencyConverter alloc] init];
return YES;

上面的变量myCC是一个本地变量。它的生命周期仅与此方法一样长。但是该方法在下一行结束时没有进一步提及 myCC,因此创建它毫无意义;它出现并再次消失(此 CurrencyConverter 也是如此)。

(在其他代码中,myCC 是一个实例 变量,因此它的值 - 一个不同的 CurrencyConverter - 在创建并分配给它之后仍然存在。在任何情况下Objective-C 编译器永远不会提示未使用的实例变量,因为这个概念毫无意义。)

关于ios - 创建类的实例返回警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com