1、今天封装了个delegate,发现delegate方法不能实现,具体分析发现是因为在cell里面只在cell创建时声明了delegate,把声明放外面即可解决
- (IBAction)setAddressForDefult:(UIButton *)sender
{
if ([self.delegate respondsToSelector:@selector(personAddressTableViewCellSetDefultAddress:)])
{
[self.delegate personAddressTableViewCellSetDefultAddress:sender];
}
}
PersonAddressTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:settingCell];
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
if (cell==nil) {
cell = [[[NSBundle mainBundle]loadNibNamed:@"PersonAddressTableViewCell" owner:nil options:nil] firstObject];;
cell.accessoryType = UITableViewCellAccessoryNone;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
cell.delegate = self;
cell.setDefultButton.tag = indexPath.section;
[cell settingCellValue:data[indexPath.section]];
return cell;
2、今天在调试时发现了一个变量为空的问题,我有一个NSString的变量,里面是有值的。在传递给另一个类的成员函数时,跟了下代码,参数变成nil了。提示
(NSString *) srcfile = <no location, value may have been opmized out>
解决办法很简单:
这不是代码的问题,主要是编辑环境的问题,Produc-> Scheme-> Edit Scheme run ,build configuration 把relesae改为debug。
3、今天在写代码时发现一个有趣的问题,由于使用的ARC环境,所以可能是内存过早释放的问题。下面看实例:
ChangeNicknameViewController *changeNicknameVC = [[ChangeNicknameViewController alloc]init];
changeNicknameVC.isShowNickVC = YES;
[self.navigationController pushViewController:changeNicknameVC animated:YES];
NSLog(@"修改昵称");
注意这里的ChangeNicknameViewController类里面的isShowNickVC,我在ChangeNicknameViewController类里实现了这样的方法
- (void)setIsShowNickVC:(BOOL)isShowNick
{
[self creatNickView];
if (isShowNickVC == YES) {
nickLable.text = @"昵称";
[self setNickNameFieldContent:@"昵称"];
}else
{
nickLable.text = @"身份证";
[self setNickNameFieldContent:@"身份证"];
}
}
在这里可以实现但是我发现self.isShowNickVC属性为空,所以我在此类中重新声明@synthesize isShowNickVC;
并在- (void)setIsShowNickVC:(BOOL)isShowNick
方法里添加,isShowNickVC = isShowNick;