-1

这段代码有什么问题,因为我试图从 NSDictionary 对象的 NSArray 中获取 NSDictionary 对象,但它进入了无限循环。

- (void)updateFieldsWithData:(NSArray *)items {
    // NSLog(@"updateFieldsWithData (%d)", [items count]);

    for ( NSDictionary * item in items ) { // add rows to the item table
        [tfPhoneNumber setText:[item valueForKey:kPhoneNumberKey]];
        [tfFirstName setText:[item valueForKey:kFirstNameKey]];
        [tfLastName setText:[item valueForKey:kLastNameKey]];
        [tfEmailAddress setText:[item valueForKey:kEmailKey]];
        [tfStreet setText:[item valueForKey:kStreetKey]];
        [tfCity setText:[item valueForKey:kCityKey]];
        [tfState setText:[item valueForKey:kStateKey]];
        [tfZipCode setText:[item valueForKey:kZipCodeKey]];
    }
}

在此处输入图像描述

4

1 回答 1

1

正如@Chris 所说,您的for循环可能不是使您的代码成为无限循环的原因。

我习惯于添加此代码以了解调用我的函数的内容。只需将其放在函数的开头updateFieldsWithData:

NSString *sourceString = [[NSThread callStackSymbols] objectAtIndex:1];
NSCharacterSet *separatorSet = [NSCharacterSet characterSetWithCharactersInString:@" -[]+?.,"];
NSMutableArray *array = [NSMutableArray arrayWithArray:[sourceString  componentsSeparatedByCharactersInSet:separatorSet]];
[array removeObject:@""];

NSLog(@"Class caller = %@", [array objectAtIndex:3]);
NSLog(@"Function caller = %@", [array objectAtIndex:4]);
于 2013-11-12T14:15:34.863 回答