Hi there,
I really have a very puzzling problem that driving me crazy. I am building a chess app for mac. Things were working fine, but now i dont know what changed to make this problem.
The problem is that if i change a variable's value in a place (same class), when i access it from another method, it is not changed. Example if i change a BOOL value from NO to YES in method A and it will still show as NO in method B. Same with NSArray/NSMutableArray if i add an objet in a method it still shows count of zero in another method.
Here is the code.
the drawRect method
i also added an observeValueForKeyPath to see when self.resizeItemsViews changes
This is what i get through my console when i resize the window (A sample). The first tow NOs are because i set self.resizeItemsViews to NO in the awakeFromNib method. Why twice?! the awakeFromNib is called twice. I dont know why!!!
2011-01-11 01:58:25.399 Views[1457:a0f] Observer self.resizeItemsViews = NO
2011-01-11 01:58:25.402 Views[1457:a0f] Observer self.resizeItemsViews = NO
2011-01-11 01:58:25.475 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.290 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.296 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.311 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.313 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.324 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.327 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.341 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.344 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.354 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.357 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.375 Views[1457:a0f] Observer self.resizeItemsViews = YES
with NSMutableArray
if i add an object in method A, count in method B is zero. However if i execute method A again i see count as 1 (two after adding another object) and yet again count zero in method B.
I really have a very puzzling problem that driving me crazy. I am building a chess app for mac. Things were working fine, but now i dont know what changed to make this problem.
The problem is that if i change a variable's value in a place (same class), when i access it from another method, it is not changed. Example if i change a BOOL value from NO to YES in method A and it will still show as NO in method B. Same with NSArray/NSMutableArray if i add an objet in a method it still shows count of zero in another method.
Here is the code.
Code:
-(void)windowDidResize:(NSNotification *)notification
{
self.resizeItemsViews = YES;
[self.splitView setPosition:[self.window frame].size.width-200 ofDividerAtIndex:0];
[self setNeedsDisplay: YES];
}
the drawRect method
Code:
- (void)drawRect:(NSRect)dirtyRect {
if (self.resizeItemsViews) {
NSLog(@"self.resizeItemsViews = YES");
}
else {
NSLog(@"self.resizeItemsViews = NO");
}
//Drawing Code
}
Code:
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"resizeItemsViews"]) {
if (self.resizeItemsViews) {
NSLog(@"Observer self.resizeItemsViews = YES");
}
else {
NSLog(@"Observer self.resizeItemsViews = NO");
}
}
}
}
This is what i get through my console when i resize the window (A sample). The first tow NOs are because i set self.resizeItemsViews to NO in the awakeFromNib method. Why twice?! the awakeFromNib is called twice. I dont know why!!!
2011-01-11 01:58:25.399 Views[1457:a0f] Observer self.resizeItemsViews = NO
2011-01-11 01:58:25.402 Views[1457:a0f] Observer self.resizeItemsViews = NO
2011-01-11 01:58:25.475 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.290 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.296 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.311 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.313 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.324 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.327 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.341 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.344 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.354 Views[1457:a0f] Observer self.resizeItemsViews = YES
2011-01-11 01:58:28.357 Views[1457:a0f] drawRect self.resizeItemsViews = NO
2011-01-11 01:58:28.375 Views[1457:a0f] Observer self.resizeItemsViews = YES
with NSMutableArray
if i add an object in method A, count in method B is zero. However if i execute method A again i see count as 1 (two after adding another object) and yet again count zero in method B.