如何将NSString的值设置为NSArray

时间:2018-06-16 15:42:38

标签: objective-c nsstring 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"];
}

2 个答案:

答案 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)永远不会有效,因为它始终是非负数。