Я - новичок к JavaScript поэтому, возможно, я просто не слишком испытан в обеспечении хорошей точки наблюдения к этому. Все же я хочу разделить свои взгляды на эту "новую" вещь.
я произошел из мира C#, где использование "нового" ключевого слова является столь естественным, что это - шаблон разработки фабрики, который выглядит странным мне.
, Когда я сначала кодирую в JavaScript, я не понимаю, что существует "новое" ключевое слово и код как тот в шаблоне YUI, и это не занимает у меня много времени для столкновения с бедствием. Я теряю след того, что конкретная строка, как предполагается, делает при оглядывании назад код, который я записал. Более хаотичный то, что мой ум не может действительно передать транзитом между границами экземпляров объектов, когда я - "сухое выполнение" код.
Затем я нашел "новое" ключевое слово, чтобы мне, оно "разделяет" вещи. С новым ключевым словом это создает вещи. Без нового ключевого слова я знаю, что не перепутаю его с созданием вещей, если функция, которую я вызываю, не даст мне сильный ключ к разгадке этого.
, Например, с var bar=foo();
у меня нет подсказок как, какова панель могла возможно быть.... Действительно ли это - возвращаемое значение, или действительно ли это - недавно созданный объект? Но с var bar = new foo();
я знаю наверняка, что панель является объектом.
Sure the method reloadData on UITableView will do the trick
Не бойтесь, создать подкласс UITableView очень просто. В xCode просто выберите новый файл, выберите «Классы касания какао», «Класс Objective-c» и в раскрывающемся списке «Подкласс» выберите «UITableView». xCode добавит подкласс UITableViewController с заглушками для развития.
Я заполнил очень простой пример, который извлекает данные таблицы из массива и отображается из делегата приложения. Как вы предложили, отправка сообщения reloadData в UITableView обновит отображаемые данные.
Как вы, вероятно, узнали, использовать InterfaceBuilder для этой работы намного сложнее, чем делать это программно.
Ура, niels
//
// MyTableViewController.m
// TableView
//
// Created by Niels Castle on 7/15/09.
// Copyright 2009 Castle Andersen ApS. All rights reserved.
//
#import "MyTableViewController.h"
@implementation MyTableViewController
// Initializer do custom initialisation here
- (id)initWithStyle:(UITableViewStyle)style {
if (self = [super initWithStyle:style]) {
// This is the source of my data. The simplest source possible,
// an NSMutableArray, of name. This would be the data from your web site
array = [[NSMutableArray alloc]
initWithObjects:@"Niels", @"Camilla", @"William", nil];
}
return self;
}
// How many section do we want in our table
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// Customize the number of rows in the table view
// Simply the number of elements in our array of names
- (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section {
return [array count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// Reuse cells
static NSString *id = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:id];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle: UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier] autorelease];
}
// Simplest possible cell - displaying a name from our name array
[[cell textLabel] setText: [array objectAtIndex:[indexPath row]]];
return cell;
}
- (void)dealloc {
[super dealloc];
[array release];
}
@end
//
// TableViewAppDelegate.m
// TableView
//
// Created by Niels Castle on 7/15/09.
// Copyright Castle Andersen ApS 2009. All rights reserved.
//
#import "TableViewAppDelegate.h"
#import "MyTableViewController.h"
@implementation TableViewAppDelegate
@synthesize window;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
MyTableViewController *twc = [[MyTableViewController alloc]
initWithStyle: UITableViewStylePlain];
[window addSubview: [twc view]];
[window makeKeyAndVisible];
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end