【发布时间】:2020-12-04 20:54:16
【问题描述】:
在我的 Objective-C 项目中,我正在从 cloudKit 中获取一个密钥,并想像这样对其进行格式化,并想知道格式化有什么问题,
[cloudKitDB performQuery:query inZoneWithID:nil completionHandler:^(NSArray<CKRecord *> * _Nullable results, NSError * _Nullable error) {
NSString *key = [[NSString alloc] initWithData:[results.firstObject objectForKey:@"keyvalue"] encoding:NSASCIIStringEncoding];
NSLog(@"First Key Output: %@",key);
NSLog(@"Second Key Output: %@",key);
NSString *formattedKey = [NSString stringWithFormat:@"%@%@",[key stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]], @"1234"];
NSLog(@"Formatted Key: %@",formattedKey);
这里是我的日志
2020-08-15 21:08:14.704650+0700 myapp[2208:79554] First Key Output: ADEvXp2F2BFJ2E4Lm2dSnYvHENhkFrK8
2020-08-15 21:08:14.704828+0700 myapp[2208:79554] Second Key Output: ADEvXp2F2BFJ2E4Lm2dSnYvHENhkFrK8
2020-08-15 21:08:14.705456+0700 myapp[2208:79554] Formatted Key: ADEvXp2F2BFJ2E4Lm2dSnYvHENhkFrK8
虽然,我尝试修剪空白,但仍然没有成功!
谢谢
【问题讨论】:
-
我认为问题不在于 ASCII 编码。我认为可能会在键上附加一些内容,例如换行符,这会导致 1234 在下一行打印。您能否粘贴完整的输出而不只是在 cmets 中显示?
-
您能解释一下您的“记录”输出有什么问题/出乎意料吗?看起来不错。
-
@matt 格式化的密钥输出应该是 ADEv...1234
-
您能解释一下如何重现您的结果吗?我确实得到了“1234”。
标签: objective-c nsstring cloudkit nsstringencoding