.m文件中声明变量@implementation和.hface中的.h fie之间有什么区别?
@implementation PiechartViewController
NSMutableArray *impIDs;
我观察到如果我创建了3个piechartViewController对象,则新对象会覆盖先前的对象数据,即3个不同对象的impID与上一个实例化对象的值相同。
相反,如果我按照这种方式
在“.h”文件中
@interface PiechartViewController : UIViewController {
NSMutableArray * impIDs;
代码正常工作.Means impIDs有3个不同的值。
答案 0 :(得分:2)
首先,类名以大写字母开头,实例变量以小写字母开头。这是惯例。
@implementation PiechartViewController
NSMutableArray *impIDs;
在上文中,impIDs
是在包含该代码的文件范围内定义的变量。虽然它或多或少都是全局的,但如果不将它声明为可见的地方(例如extern NSMutableArray *impIDs
),您将无法从其他文件访问它。
@interface PiechartViewController : UIViewController {
NSMutableArray * impIDs;
这里,impIDs
是一个实例变量,因此,每个实例都有一个存储空间,可以在impIDs
实例变量槽中访问它自己的孤立数据位。
我建议你read this。