【发布时间】:2012-02-03 12:44:03
【问题描述】:
我有 3 节课
第一个 -> MainViewController:
@interface MainViewController : UIViewController {
UtilityBadah *utility;
}
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
- (IBAction)option;
@end
@implementation MainViewController
@synthesize managedObjectContext = _managedObjectContext;
(IBAction)option{
UtilityBadah *util = [[UtilityBadah alloc] initWithContext:_managedObjectContext];
OptionController *ovc = [[OptionController alloc] init];
ovc.util = util;
ovc.managedObjectContext = _managedObjectContext;
[self.navigationController pushViewController:ovc animated:YES];
[util release];
[ovc release];
}
@end
第二 -> UtilityBadah:
@interface UtilityBadah : NSObject {
NSManagedObjectContext *managedObjectContext;
NSString *kitab;
NSString *lagu;
NSString *font;
NSString *sizefont;
}
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) NSString *kitab;
@property (nonatomic, retain) NSString *lagu;
@property (nonatomic, retain) NSString *font;
@property (nonatomic, retain) NSString *sizefont;
(id) initWithContext: (NSManagedObjectContext *) context;
@end
@implementation UtilityBadah
@synthesize managedObjectContext;
@synthesize kitab;
@synthesize lagu;
@synthesize font;
@synthesize sizefont;
-(id) initWithContext: (NSManagedObjectContext *) context {
NSError *err;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *enDesc = [NSEntityDescription entityForName:@"OptionDB" inManagedObjectContext:context];
[request setEntity:enDesc];
NSArray *arrData = [context executeFetchRequest:request error:&err];
for (OptionDB *data in arrData) {
lagu = data.lagu;
kitab = data.kitab;
font = data.font;
sizefont = data.sizefont;
}
return self;
}
第三 -> 选项控制器:
@interface OptionController : UIViewController{
NSManagedObjectContext *managedObjectContext;
UtilityBadah *util;
}
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) UtilityBadah *util;
@end
(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
bla..bla..
NSLog(@"value is %@",self.util.kitab);
cell.textLabel.text = [listData objectAtIndex:row];
return cell;
}
我想知道为什么这段代码:
NSLog(@"value is %@",self.util.kitab);
导致错误“收到信号:“EXC_BAD_ACCESS”? 我想知道我将 UtilityBadah 对象从 MainViewController 传递到我的 OptionController 的方式有什么问题。
非常感谢您的任何回答。
P.S 我的 xcode 4.2 错误信息有什么问题,为什么它总是显示“程序接收信号:“EXC BAD ACCESS”?不能提供信息吗?
【问题讨论】:
-
如果你尝试这个会发生什么:NSLog(@"util is: %@", self.util);
-
这不是错误,但它显示:2012-02-03 20:12:12.137 iBadah[13981:207] util 是:<0x6d121d0>0x6d121d0>
标签: iphone objective-c oop object