Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
619 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 Answer

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.8k users

...