请帮我解决一个简单的问题。我是objective-c的初学者,我刚刚从java切换到objective-c。我很了解java,但不是很深入。
我正在构建一个 iphone 应用程序。我的应用程序非常简单。我的 iphone 应用程序的目的是在餐厅用我的 iphone 应用程序点菜。
我的应用程序的进度: 我的应用程序现在只有几个视图面板和按钮 :) 这是我的应用程序源代码,firstview screenshot & secondview screenshot
问题: 当我点击 Coffee 按钮时,我的 textField 不会显示咖啡名称和咖啡价格,假设显示为“coffee 1”。并且 xcode 会从 iphone 模拟器将我带到调试器。(我认为它在一行中迷恋,所以调试器将我带到 IBaction 方法并在@synthesize 名称行中断;它编译没有错误。请帮助排除故障原因当我按下咖啡按钮时,xcode 将我带到调试器。
这是咖啡按钮的动作代码
- (IBAction)Coffee:(id)sender {
int price = 1;
NSString *name = @"coffee";
Storage *order = [[Storage alloc] init];
[order setName:name]; // i assume the program crush at here when it look into setName method.
[order setPrice:price];
[orders addOrders:order];
// Sanity check: // the program not even hit this line yet before crush;
NSLog(@"There are now %d orders in the array.", [orders.getOrders count]);
for (Storage *obj in orders.getOrders){
[check setText:[NSString stringWithFormat:@"%@",[obj description]]]; // check is the TextField instant varible. and the description method is from storage.m to print out the name and price.
}
}
下面的代码是我的存储类,用于存储我的客户订购的所有物品。它是一个二维数组,My Storages类是Storage类的包装类。数组格式如下所示:
arrayindex1-> 名称,价格
arrayindex2-> 名称,价格
arrayindex3-> 名称,价格
arrayindex4-> 名称,价格
存储.h
#import <Foundation/Foundation.h>
@interface Storage : NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger price;
@end
存储.m
#import "Storage.h"
@implementation Storage
@synthesize name; // program crush and goes to here.
@synthesize price;
- (NSString *)description {
// example: "coffee 1"
return [NSString stringWithFormat:@"%@ %d", self.name, self.price];
}
@end
存储.h
#import <Foundation/Foundation.h>
#import "Storage.h"
@interface Storages : NSObject
@property (nonatomic,strong, readwrite) NSMutableArray *orders;
-(void) addOrders:(Storage *)anOrder;
-(NSMutableArray *) getOrders;
@end
存储.m
#import "Storages.h"
@implementation Storages
@synthesize orders;
- (id)init {
self = [super init];
if (self) {
orders = [[NSMutableArray alloc] init];
}
return self;
}
-(void) addOrders:(Storage *)anOrder{
[orders addObject: anOrder];
}
-(NSMutableArray *) getOrders{
return orders;
}
@end