Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
639 views
in Technique[技术] by (71.8m points)

objective c - Instance variable 'variable' accessed in class method error

I have a variable declared in the header file :

@interface

int _nPerfectSlides;

and

@property (nonatomic, readwrite) int _nPerfectSlides;

and I have a method that I declared in the header :

+ (void) hit;

The method has the following code in it :

+ (void) hit {
    NSLog(@"hit");
    _nPerfectSlides = 0;
    [_game showHit];
}

now for some reason I get the error "Instance variable '_nPerfectSlides' accessed in class method" error and it seems like I cant access any variables inside the method. What am I doing wrong?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

1. For + (void)hit:Only have access to the self object.

--Step 1: Remove follwing line from header file

@property (nonatomic, readwrite) int _nPerfectSlides;

--Step 2:

  • Add int _nPerfectSlides in your class file globally..
  • That means declare before @implementation

Eg: In .m File

#import "Controller.h"
int _nPerfectSlides // Add like this before @implementation

@implementation Controller

2. For - (void)hit:Only have access to the instance methods


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...