Что это за недопустимый контекст 0x0? - PullRequest
4 голосов
/ 06 июля 2011

Я написал следующий код в ViewDidLoad

// Implement viewDidLoad to do additional setup after loading the view, typically     from      a nib.
     -(void)viewDidLoad {
    [super viewDidLoad];

NSString *str = [NSString stringWithFormat:@"Veer"];

CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB();
CGFloat values[4] = {55.0, 0.0, 0.0, 1.0}; 
CGColorRef glowColor = CGColorCreate(rgbColorspace, values); 
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetShadowWithColor( context, CGSizeMake( 5.0, 0.0 ), 20.0f, glowColor);   
[str drawAtPoint:CGPointMake(10.5f, 0.5f) withFont:[UIFont      fontWithName:@"Helvetica" size:100.0f]];    
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(60, 200, 250, 100)];
[label setBackgroundColor:[UIColor clearColor]];
label.font=[UIFont fontWithName:@"DBLCDTempBlack" size:50.0];
label.textColor = [UIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:1.0];
[label setText:str];

[self.view addSubview:label];
  }

В консоли я видел как

 Testing Clock[3286] <Error>: CGContextSetStyle: invalid context 0x0
 Testing Clock[3286] <Error>: CGContextSetFont: invalid context 0x0
 Testing Clock[3286] <Error>: CGContextSetTextMatrix: invalid context 0x0
 Testing Clock[3286] <Error>: CGContextSetFontSize: invalid context 0x0
 Testing Clock[3286] <Error>: CGContextSetTextPosition: invalid context 0x0
 Testing Clock[3286] <Error>: CGContextShowGlyphsWithAdvances: invalid context 0x0

Ответы [ 2 ]

4 голосов
/ 30 августа 2013

Вы просто должны проверить, существует ли контекст перед рисованием:

CGContextRef context = UIGraphicsGetCurrentContext();
if (context) {
    // Do your stuff
}
4 голосов
/ 06 июля 2011

Вы должны переместить этот пользовательский код рисования из viewDidLoad и переместить его в drawRect.

Вам также понадобится создать подкласс представления, если вы хотите реализовать свой собственный метод drawRect.

Оформить заказ в этом примере: http://ykyuen.wordpress.com/2010/08/27/iphone-uiview-with-border/

...