代码之家  ›  专栏  ›  技术社区  ›  gerry3

为什么Xcode报告类变量的“已定义但未使用”警告?

  •  5
  • gerry3  · 技术社区  · 15 年前

    我在标题的这一行收到警告,但我在实现中使用了class变量(在类方法和实例方法中):

    #import <UIKit/UIKit.h>
    
    static NSMutableArray *classVar; // Xcode warning: 'classVar' defined but not used
    
    @interface MyViewController : UIViewController {
    
    4 回复  |  直到 15 年前
        1
  •  14
  •   lillq    15 年前

    此变量不是类/实例变量。每次将头文件包含到.m文件时,编译器都会创建一个新的静态变量,其作用域仅限于包含此头文件的文件。如果试图获取类级变量,请将声明移到相应的.m文件的开头。

        2
  •  6
  •   Chuck    15 年前

    A. static

        3
  •  3
  •   epatel    15 年前

    您已将classVar放置在接口定义之外。这将使编译器认为您正在声明一个全局变量,并且由于它看起来像是一个头文件(.h),因此也将在包括此头文件在内的所有文件中创建它。我猜在编译包含此头文件的MyViewController.m以外的文件时会出现警告。

    编辑 我的建议是将classVar移到MyViewController的.m文件中(miss解释了您首先在哪里解释的内容)

        4
  •  0
  •   malhal    11 年前

    以下是正确的方法:

    extern NSString *const DidAddRecordNotification;
    

    在下午

    NSString *const DidAddRecordNotification = @"DidAddRecordNotification";