2011-07-06 49 views
4

我在viewDidLoad中這個錯誤是無效的上下文0x0?

// 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 
+0

方面0X0意味着初始化對象,即它是空的。在你的情況下是空的。 –

+0

但我該怎麼做才能初始化它? –

+0

CGContextRef context = UIGraphicsGetCurrentContext(); 我寫了這個上下文 –

回答

4

您應該移動的自定義繪圖代碼進行viewDidLoad中,並將其移動到的drawRect。

如果你想實現你自己的drawRect方法,你還需要繼承這個視圖。

結帳這個例子:http://ykyuen.wordpress.com/2010/08/27/iphone-uiview-with-border/

+0

即使我做了,但得到同樣的錯誤,你試着告訴我你得到什麼, –

+0

這段代碼不工作,誰做了upvote? –

+0

我已經提到過我想要在同一個類中完成,否則如果您將在對象(用戶定義的類)上每秒執行一次操作,那麼它將變得很重, –

4

你只需要檢查上下文繪圖之前存在:

CGContextRef context = UIGraphicsGetCurrentContext(); 
if (context) { 
    // Do your stuff 
} 
相關問題