2011-05-23 31 views
0

我试图扩展UIButton,但我一直在ColorButton的实现文件的初始化器中获得“EXC_BAD_ACCESS”。扩展UIButton for iOS的问题

ColorButton的标题。

#import <Foundation/Foundation.h> 


@interface ColorButton : UIButton { 
    UIImage * originalImage; 
} 

@property (nonatomic,readonly) NSString * buttonName; 

-(id) initButtonWithName:(NSString *) color; 
-(void) setOriginalImage; 
-(void) setImage:(UIImage *) image; 
@end 

ColorButton实施

#import "ColorButton.h" 

@implementation ColorButton 

@synthesize buttonName; 

-(id) initButtonWithName:(NSString *) color { 
    if ((self = (ColorButton *)[UIButton buttonWithType:UIButtonTypeCustom])) { 
     buttonName = color; 
     [self setTitle:buttonName forState:UIControlStateNormal]; //This is the line of the "EXC_BAD_ACCESS" error. 
     [self setBackgroundImage:[self backgroundImageForDevice:color] forState:UIControlStateNormal]; // This line gets the error too. If I comment the line before it out. 
    } 
    return self; 
} 

-(UIImage *) backgroundImageForDevice:(NSString *) color { 
     color = [color stringByAppendingString:@"Bubble"]; 
    if ([[[UIDevice currentDevice] model] isEqualToString:@"iPad"] ||[[[UIDevice currentDevice] model] isEqualToString:@"iPad Simulator"]) { 
     color = [color stringByAppendingString:@"-iPad"]; 
    } 
    color = [color stringByAppendingString:@".png"]; 
    return [UIImage imageNamed:color]; 
} 

-(void) setOriginalImage { 
    [self setBackgroundImage:originalImage forState:UIControlStateNormal]; 
} 

-(void) setImage:(UIImage *) image { 
    [self setImage:image forState:UIControlStateNormal]; 
} 
@end 

回答