ios - 与访问器的类型不匹配

标签 ios objective-c

我正在尝试为我的 iPhone 应用程序构建一个存储类。存储类用于存储食品订单列表,每个订单都有食品名称和价格。在应用程序中,当我按下食物菜单上的按钮时,我想将其按顺序存储到名为 orders 的二维数组中。我是 Java 用户,也是 Objective-C 的新手。我想要构建的是一个类似于java的ArrayList类的存储类,Storage.m类保存食物名称和价格。

我已经有了一些代码,但它一直显示此错误:“属性‘orders’的类型与我的 Storages.h 类中访问器‘setOrder’的类型不匹配”。

存储.h

#import <Foundation/Foundation.h>

@interface Storage : NSObject{
    NSString *name;
    NSInteger *price;
}
@property (nonatomic)NSString *name;
@property (nonatomic)NSInteger *price;


@end

存储.m

 #import "Storage.h"

 @implementation Storage


 @synthesize name;
 @synthesize price;


@end

存储.h

#import <Foundation/Foundation.h>
#import "Storage.h"
@interface Storages : NSObject{
    Storage *order;
    NSMutableArray *orders;

@property (nonatomic) NSMutableArray *orders; // error "Type of property 'orders' does not match type of accessor 'setOrder'"

-(void) setOrders:(Storage *)order;
-(NSMutableArray *) orders;
@end

存储.m

#import "Storages.h"

@implementation Storages
@synthesize orders;

-(void) setOrders:(Storage *)oneOrder{  

    [orders addObject: oneOrder];
}
-(NSMutableArray *) orders;{
    return orders;
}
@end

最佳答案

由于您有一个名为“orders”的属性,因此函数“setOrders”将覆盖该属性的 setter 方法。因此,要使其正常工作,您必须将 setOrders: 函数的名称更改为 addOrder:(存储*)订单。

关于ios - 与访问器的类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14592441/

相关文章:

objective-c - cocoa sqlite 数据库文件

iphone - ASIFormDataRequest 将发布数据发送到服务器 Rails,但在插入中有一个空值

ios - 快速如何从 sqlite 重新加载 tableview 选定的行(.checkmark)值

iphone - 当 iPhone 应用程序后台不工作时是否可以获取位置

iphone - REST 套件 0.10.0 - POST 不工作

objective-c - 在 NSTextField 中定位文本

ios - 我可以检查用户是否设置了密码吗?

ios - 如何关闭自己的 View Controller 并在点击按钮时显示另一个 View Controller ?

ios - 为什么 UIInterpolatingMotionEffect 不改变 UIView 的框架?

iOS类方法