我想知道如何将NSString的值设置为NSArray
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"];
}
答案 0 :(得分:0)
您在问题中使用的字词似乎与屏幕截图无关。屏幕截图中代码的问题是表达式
[(unsigned long)self.resultFetch.count]
应该是什么?如果它应该是一个数字,请删除方括号。如果它应该是一个数组,请将@
放在它前面:
@[(unsigned long)self.resultFetch.count]
但是那也不会编译,因为(unsigned long)self.resultFetch.count
不是对象。因此它不能是数组的元素,也不能是setObject
的参数。无论哪种方式,您需要将其包装在NSNumber中, 是一个对象。同样,您可以使用@
执行此操作:
@self.resultFetch.count
或者,如果你真的坚持要转换为unsigned long
,
@((unsigned long)self.resultFetch.count)
那么,根据你的代码应该是什么意思,你最终会得到类似的东西(你想要一个数字?):
@self.resultFetch.count
或类似的东西(你想要一个包含数字的数组?):
@[@self.resultFetch.count]
答案 1 :(得分:0)
您需要使用NSMutableArray而不是NSArray。看起来像这样:
NSString *holdTheNumberToUpload = @"Whatever";
NSMutableArray *resultFetch = [NSMutableArray array];
[resultFetch addObject:holdTheNumberToUpload];
此外,我不确定您如何使用resultFetch.count
。该值是NSUInteger,因此您的支票if (!resultFetch.count)
永远不会有效,因为它始终是非负数。