一、NSArray与NSMutableArray的方法区别
1、通过下标取得元素,只适用于NSMutableArray
错误现场:
@property (nonatomic, strong) NSArray *departmentIdsArray; [self.departmentIdsArray enumerateObjectsUsingBlock:^(NSString *departmentIdStr , NSUInteger idx, BOOL * _Nonnull stop) { if ([departmentIdStr isEqualToString:@"Uzg9"]) { self.departmentIdsArray[idx] = @""; *stop = YES; } }];
纠错:
@property (nonatomic, strong) NSMutableArray *departmentIdsArray;
二、定义数组时可以同时申明改数组中对象的已知类型,比如
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActions
indexPath
{
}
三、将一个数组(strong型)用等号赋给另一个数组(strong型),造成的强引用问题
比如,
displayDocumentVC.folderAllPathArr = disVC.folderAllPathArr;
[displayDocumentVC.folderAllPathArr addObject:companyFolderCell.DocumentModel.documentName];
明明是在displayDocumentVC.folderAllPathArr上增加一个对象,却因为强引用的作用,disVC.folderAllPathArr也增加了一个对象。并且因为displayDocumentVC.folderAllPathArr强引用disVC.folderAllPathArr,所以disVC.folderAllPathArr无法释放。