Objective c 如何将NSString的值设置为NSArray
我想知道如何在NSArray中设置NSString的值Objective c 如何将NSString的值设置为NSArray,objective-c,nsstring,nsarray,Objective C,Nsstring,Nsarray,我想知道如何在NSArray中设置NSString的值 NSString *holdTheNumberToUpload; NSArray *resultFetch; self.resultFetch.count = holdTheNumberToUpload 我用这种方式: if (!self.resultFetch.count) { [self.defaults setObject: [NSString stringWithFormat:@"%lu", (unsigned lo
NSString *holdTheNumberToUpload;
NSArray *resultFetch;
self.resultFetch.count = holdTheNumberToUpload
我用这种方式:
if (!self.resultFetch.count) {
[self.defaults setObject: [NSString stringWithFormat:@"%lu", (unsigned long)self.resultFetch.count] forKey:@"holdTheNumberToUpload"];
}
你在问题中使用的词语似乎与屏幕截图无关。屏幕截图中的代码的问题是表达式
[(unsigned long)self.resultFetch.count]
那应该是什么?如果它应该是一个数字,去掉方括号。如果它应该是一个数组,请将@
放在它前面:
@[(unsigned long)self.resultFetch.count]
但这也不会编译,因为(unsigned long)self.resultFetch.count
不是一个对象。因此,它不能是数组的元素,也不能是setObject
的参数。无论哪种方式,您都需要将其包装在NSNumber中,这是一个对象。同样,您可以使用@
执行此操作:
@self.resultFetch.count
或者,如果您确实坚持强制转换为无符号long
@((unsigned long)self.resultFetch.count)
因此,根据你的代码到底是什么意思,你可能会得到这样的结果(你想要一个数字?):
或者类似(您想要一个包含数字的数组?):
您需要使用NSMutableArray而不是NSArray。它看起来是这样的:
NSString *holdTheNumberToUpload = @"Whatever";
NSMutableArray *resultFetch = [NSMutableArray array];
[resultFetch addObject:holdTheNumberToUpload];
另外,我不确定您如何使用
resultFetch.count
。此值是一个整数,因此如果(!resultFetch.count)检查将永远不起作用,因为它始终是一个非负数。您可以将一个对象添加到数组(结尾)或特定索引处的一个对象,但是您需要一个NSMutableArray
。谢谢,您可以更具体一点吗?你有例子吗?请在我的第一条评论中点击add
和insert
。你的问题让人困惑setObject:forKey:
与NSMutableDictionary
相关,错误说明dictionary中的所有值都必须是对象(您必须从整数@(self.resultFetch.count)
创建一个NSNumber对象)
@[@self.resultFetch.count]
NSString *holdTheNumberToUpload = @"Whatever";
NSMutableArray *resultFetch = [NSMutableArray array];
[resultFetch addObject:holdTheNumberToUpload];