@property(nonatomic,strong)NSMutableArray * authorMutableArray;
- (id)init {
self = [super init];
if (self) {
self.authorMutableArray = [[NSMutableArray alloc] initWithObjects:@"First Row", @"Second Row", nil];
for (NSString *string in authorMutableArray) {
NSLog(@"String: %@", string);
}
NSLog(@"Init in Add Model with Author count:%i", [authorMutableArray count]);
}
}
访问该属性的示例。 NSLog始终将计数显示为0。
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
if (indexPath.row == [self.addModel.authorMutableArray count] - 1 ) {
NSLog(@"count of %i", [self.addModel.authorMutableArray count]);
return UITableViewCellEditingStyleInsert;
}
else {
return UITableViewCellEditingStyleDelete;
}
}
else {
return UITableViewCellEditingStyleNone;
}
}
我在init中创建的数组没有保持其值超过此方法。有什么理由吗? for循环将显示数组中的两个对象。如果我在调用init方法后尝试询问此问题,则该数组为空。
更新:感谢大家的时间和眼睛。我忘了在init方法中返回self。
答案 0 :(得分:5)
init方法不应该返回self吗?
答案 1 :(得分:0)
在你的类'接口文件(.h文件)中声明如下:
@interface Your_Class_Name : UIViewController {
NSMutableArray *authorMutableArray;
}
@property (nonatomic, strong) NSMutableArray *authorMutableArray;
//i dont know why you prefered strong, chose retain and try again please
答案 2 :(得分:0)
我们在这里不处理C ++或Java,对象-init
的{{1}}方法返回一个值。
这个怪癖实际上允许一些非常有趣的东西,e.x。以下内容:
MUST
它还允许对类进行“冒充”,允许您准确跟踪特定类的对象何时被初始化(这个问题的主题太深了)。