سؤال

وأواجه بعض المتاعب مع عرض النتائج من مصدر بيانات. وهذا الرمز تظهر نتيجة مختلفة (والصحيحة) في وحدة تحكم، ولكن النتائج في جميع أنواع حماقة العشوائية في محاكاة.

و( "النتائج" هو خاصية NSMutableArray للفئة.)

-(void) handleSearchForKeywords: (NSString *) keywords {
    [results removeAllObjects];
    int r = rand() % 10;
    for( int i = 0; i < r; i++ ) {
        [results addObject:[NSString stringWithFormat:@"test %i: %@", i, keywords]];
    }
    [self reloadTheTable];
}

-(void) reloadTheTable {
    NSLog( @"current array contents: %@", results );
    [tableView reloadData];
}

وأنا على التخمين بأن هذا قد يكون لها علاقة ما مع الاحتفاظ الذاكرة للصفيف، أو السلاسل في المصفوفة؟ وأخشى ما زلت لم تكن قد حصلت على تعليق على ذلك.

[تحرير ردا على مارك Bessey - أعتقد أن كل شيء هنا هو طرق مصدر البيانات الأساسية الخاصة بك]

-(NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection: (NSInteger) section {
    return [results count];
}

-(UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath {
    static NSString *SearchViewControllerCell = @"SearchViewControllerCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: SearchViewControllerCell];
    if( cell == nil ) {
        cell = [[[UITableViewCell alloc] initWithFrame: CGRectZero reuseIdentifier: SearchViewControllerCell] autorelease];
        NSUInteger row = [indexPath row];
        [cell setText:[results objectAtIndex:row]];
    }
    return cell;
}
هل كانت مفيدة؟

المحلول

وأنا لا أعتقد أن المشكلة هي في التعليمات البرمجية التي قمت نشرها. لكن على الأرجح في التعليمات البرمجية التي تنفذ مصدر البيانات لمشاهدة الجدول الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top