如何将 NSString 的值设置为 NSArray

How to set value of NSString into NSArray

我想知道如何将 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"];
}

你在问题中使用的词似乎与屏幕截图没有任何关系。屏幕截图中代码的问题是表达式

[(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]

您需要使用 NSMutableArray 而不是 NSArray。它看起来像这样:

NSString *holdTheNumberToUpload = @"Whatever";
NSMutableArray *resultFetch = [NSMutableArray array];
[resultFetch addObject:holdTheNumberToUpload];

此外,我不确定您是如何使用 resultFetch.count。这个值是一个 NSUInteger,所以你的检查 if (!resultFetch.count) 永远不会起作用,因为它永远是一个非负数。