Ich habe ein Programm, das 2 Tabellen auf zwei verschiedenen Fenstern hat. Eine Tabelle enthält den Kundennamen und die ID-Nummer und die andere den Namen und die Nummer des Artikels. Sie werden sowohl in einem Array als auch in einer .plist-Datei gespeichert.Wie bekomme ich Informationen von einer Objektinstanz von ID-Nummer
Was ich tun möchte ist, dass auf einer dritten Seite wird eine Verkaufsseite sein, wo der Benutzer die Kunden-ID und Artikel-ID eingeben und das Programm sollte in der Lage sein, den Namen zu finden und zu a anzeigen Etikette. Ich weiß nicht, wo ich anfangen und gehen soll. Könnte jemand bitte helfen oder mir zeigen, wie ich es mache? Ich kann jeden Code hochladen, den jeder sehen möchte, aber da ich nicht weiß, wo ich anfangen soll, weiß ich nicht, was ich hochladen soll.
ist dies die customer.h Datei
#import <Foundation/Foundation.h>
NSString *name;
int memberNumber;
@interface Customer : NSObject <NSCoding>
{
NSString *name;
int memberNumber;
}
@property (nonatomic, copy) NSString *name;
@property int memberNumber;
@end
dies der customer.m
#import "Customer.h"
@implementation Customer
@synthesize name;
@synthesize memberNumber;
-(id) init
{
self = [super init];
if(self)
{
name = @"Test";
int i = arc4random()%1000000000000000000;
if (i<0)
{
memberNumber = i*-1;
}
else
memberNumber = i;
}
return self;
}
- (id)initWithCoder:(NSCoder *)decoder
{
if (self = [super init])
{
self.name = [decoder decodeObjectForKey:@"name"];
self.memberNumber = [decoder decodeIntForKey:@"memberNumber"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:name forKey:@"name"];
[encoder encodeInt:memberNumber forKey:@"memberNumber"];
}
-(void)dealloc
{
[name release];
[super dealloc];
}
@end
ist ist das die tableView.h
#import <Foundation/Foundation.h>
#include <stdlib.h>
NSString *filepath;
@interface tableViewData : NSObject <NSTableViewDataSource>
{
@private
IBOutlet NSTableView *tableView;
NSMutableArray *list;
NSString *filepath;
}
-(IBAction)add:(id)sender;
-(IBAction)remove:(id)sender;
@end
ist dies die tableView.m Datei Datei
#import "tableViewData.h"
#import "Customer.h"
@implementation tableViewData
-(void)awakeFromNib{
filepath = @"/Users/Desktop/CustomerNames.plist";
if ([[NSFileManager defaultManager]fileExistsAtPath:filepath])
{
NSMutableArray *archive = [NSKeyedUnarchiver unarchiveObjectWithFile:filepath];
list = archive;
}
else
list=[[NSMutableArray alloc]init];
}
-(NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
{
return [list count];
}
-(id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
Customer *Customer = [list objectAtIndex:row];
NSString *identifier = [tableColumn identifier];
return [Customer valueForKey:identifier];
}
-(void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn: (NSTableColumn *)tableColumn row:(NSInteger)row
{
Customer *Customer = [list objectAtIndex:row];
NSString *identifier = [tableColumn identifier];
[Customer setValue:object forKey:identifier];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:list];
[data writeToFile:filepath options:NSDataWritingAtomic error:nil];
}
-(IBAction)add:(id)sender
{
[list addObject:[[Customer alloc]init]];
[tableView reloadData];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:list];
[data writeToFile:filepath options:NSDataWritingAtomic error:nil];
for (id name in list)
NSLog(@"obj: %@", name);
NSLog (@"array:%@",list);
}
-(IBAction)remove:(id)sender
{
NSInteger row = [tableView selectedRow];
if (row != -1)
{
[list removeObjectAtIndex:row];
}
[tableView reloadData];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:list];
[data writeToFile:filepath options:NSDataWritingAtomic error:nil];
}
-(void)dealloc
{
[super dealloc];
}
@end
hoffte, das hilft
(Xcode 4.2.1 für OS X)
also, wenn ich richtig verstehe, um mein Programm zu bekommen, um einen Namen eines Kunden mit nur einer ID-Nummer anzuzeigen, würde ich tun, was Sie sagten, und dann in der Methode bit würde ich sagen [label setValue name]; ? – GBSingh
Warte ... was meinst du mit id? http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocObjectsClasses.html Objektidentifikatoren oder Ihre interne Kundennummer? – Kuba
ich meine eine ID-Nummer, die jedem Kunden gegeben wurde – GBSingh