經與一些代碼有點問題,運行其各自的行動之後返回上面列出的錯誤:NSArrayM的setObject:atIndex:]:對象不能是零
- (IBAction)uploadData:(id)sender {
NSMutableArray *uploadArray = [[NSMutableArray alloc]init];
[uploadArray addObject:@"hire.csv"];
[uploadArray addObject:@"equipment.csv"];
[uploadArray addObject:@"signature.png"];
NSString * docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSString * proof1 = [docPath stringByAppendingPathComponent:@"proof1.png"];
if([[NSFileManager defaultManager] fileExistsAtPath: proof1])
{
[uploadArray addObject:@"proof1.png"];
}
NSString * proof2 = [docPath stringByAppendingPathComponent:@"proof2.png"];
if([[NSFileManager defaultManager] fileExistsAtPath: proof2])
{
[uploadArray addObject:@"proof2.png"];
}
NSString * proof3 = [docPath stringByAppendingPathComponent:@"proof3.png"];
if([[NSFileManager defaultManager] fileExistsAtPath: proof3])
{
[uploadArray addObject:@"proof3.png"];
}
int arrayCount = [uploadArray count];
int i = 0;
NSString *arrayString;
for (i = 0; i < arrayCount; i++)
{
uploadArray[i] = arrayString;
if(arrayString != nil)
{
NSString * uploadString = [docPath stringByAppendingPathComponent:arrayString];
[self upload:uploadString ftpUrl:@"ftp.xxxxxxxx.com/xx/xx" ftpUsr:@"xxx" ftpPass:@"xxx"];
}
NSLog(uploadArray[i]);
}
}
現在,如果我在禁用一切for循環,除了NSLog()
之外,我沒有收到任何錯誤,並返回數組中正確的對象列表。
這對我來說,表明沒有一個對象應該返回零,當然?
任何人都可以幫助我發現我做錯了什麼嗎? (可能相當多,因爲我很新的東西)
arrayString = uploadArray [i];而不是uploadArray [i] = arrayString; – kabarga 2014-10-08 09:23:07
好吧,顯然刪除字符串「arrayString」,並使用uploadArray [i]直接解決了這個問題。任何人都可以解釋爲什麼這是? – Joe 2014-10-08 09:24:19
查看上面的評論。你根本沒有設置arrayString。它在你的代碼中始終是零。 – kabarga 2014-10-08 09:27:31