iPhoneX対応作業中に XCode9でつまづいた。tableViewのcanEditRowAtIndexPathをいじっているとこけるようになった。
こけるコード、
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { NSString *object = _objects[indexPath.row]; switch(DirSelMode) { case 0: if([object isEqualToString:@"Inbox"]||[object isEqualToString:@".DS_Store"]||[object isEqualToString:@".DS_Store_"]||[object isEqualToString:@"..DS_Store"]||[object isEqualToString:@".|.//OneDrive"]||[object isEqualToString:@".|.//DropBox"]) { return NO; } else { return YES; } return YES; break; case 1: return NO; break; case 2: return NO; break; } return NO; }
これで走ると
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { switch(DirSelMode) { case 0: { NSString *object = _objects[indexPath.row]; if([object isEqualToString:@"Inbox"]||[object isEqualToString:@".DS_Store"]||[object isEqualToString:@".DS_Store_"]||[object isEqualToString:@"..DS_Store"]||[object isEqualToString:@".|.//OneDrive"]||[object isEqualToString:@".|.//DropBox"]) { return NO; } else { return YES; } } return YES; break; case 1: return NO; break; case 2: return NO; break; } return NO; }
どっちも一緒かと思いますが、うまくいくコードの方が最適化されていますわな。使わないコードは、やはりしまっておくと。