gpt4 book ai didi

ios - 更改 nsdictionary 中的 bool 值时出现 EXC_BAD_ACCESS

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:09:36 25 4
gpt4 key购买 nike

我有一个nsdictionariesarray,每个字典都有一个boolean值,我想改变boolean用户选择行时的值。

但不知何故我得到了exc_bad_access

这是设置字典数组的方式:

self.choosedfiles=[[NSMutableArray alloc] init];
for (NSString *s in fileListINDoc){
NSArray *partialDates =[s componentsSeparatedByString:@"."];//split string where - chars are found
NSFileManager* fm = [NSFileManager defaultManager];
NSDictionary* attrs = [fm attributesOfItemAtPath:[dataPath stringByAppendingPathComponent:s] error:nil];
NSDate *dateLocal =(NSDate*)[attrs objectForKey: NSFileModificationDate];

//creatre unique name for image _AKIAIVLFQKMSRN5JLZJA
NSString *uniqueFileName=[NSString stringWithFormat:@"%@_AKIAIVLFQKMSRN5JLZJA_%@.jpeg",[partialDates objectAtIndex: 0],[partialDates objectAtIndex: 1]];

BOOL isFileChoosen=NO;

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
dateLocal,@"date",uniqueFileName,@"imagename",s,@"name",isFileChoosen,@"isFileChoosen",
nil];
[tempArray addObject:params];
}
NSSortDescriptor *descriptor=[[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
NSArray *descriptors=[NSArray arrayWithObject: descriptor];
NSArray *reverseOrder=[tempArray sortedArrayUsingDescriptors:descriptors];

self.files=[[NSMutableArray alloc] initWithArray:reverseOrder];

当我尝试更改 boolean 值时,这会导致错误,XCODE 将行 *params 字典显示为错误:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *currentArticle = [self.files objectAtIndex:indexPath.row];
NSNumber* ischoosenObject =[currentArticle objectForKey:@"isFileChoosen"];
if ([ischoosenObject boolValue]==NO) {
BOOL isFileChoosen=YES;
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:[currentArticle objectForKey:@"date"],@"date",[currentArticle objectForKey:@"imagename"],@"imagename",[currentArticle objectForKey:@"name"],@"name",isFileChoosen,@"isFileChoosen",nil];
[self.files replaceObjectAtIndex:indexPath.row withObject:params];
[self.choosedfiles addObject:[currentArticle objectForKey:@"name"]];


}
}

上面的代码可能有什么问题?谢谢,

空间

最佳答案

Objective-C 集合类只能保存对象,不能保存原始类型,所以改变:

BOOL isFileChoosen=YES;

收件人:

NSNumber *isFileChosen = [NSNumber numberWithBool:YES];

为了有效地包装您的 boolean 值到一个对象中。

(当然,这会对代码的其他部分产生一些影响)。

关于ios - 更改 nsdictionary 中的 bool 值时出现 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17526883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com