【发布时间】:2012-04-11 13:41:19
【问题描述】:
我有一个包含结构的 xml 文件。在这个结构中,我有 Actions 节点。所以在 Actions 节点下,有多个“Action”节点,每个节点都有 Value 和 Name 属性。
例如
<?xml version="1.0" encoding="ISO-8859-1"?>
<Testcases SuiteName="CalculatorActions">
<Testcase id="101" Name="testAddFunction">
<Setup/>
<TearDown/>
<Test>
<Action Name="Enter first operand" Type="input" Value="5"/>
<Action Name="Enter second operand" Type="input" Value="3"/>
<Action Name="Select operator" Type="input" Value="+"/>
<Action Name="Click Calculator" Type="operation"/>
</Test>
<Validations>
<Action Name="Validate result" Type="output" Value="8"/>
</Validations>
</Testcase>
</Testcases>
我想做的是;我想将这些操作映射到我在 Objective-C 中实现的方法。
假设我有一个类叫做; “CalculatorActions”并在里面定义了5个方法。我想将我在 xml(文本格式)中的操作映射到我在 CalculatorActions 中创建的方法。
例如
@interface CalculatorActions : NSObject
// Property
@property (strong, nonatomic) NSString* actionScript;
// Actions
- (void)enterFirstOperand:(double)operand;
- (void)enterSecondOperand:(double)operand;
- (void)selectOperator:(NSString*)operator;
- (void)clickCalculate;
// Validations
-(void)validateResult:(NSString*)exptectedResult;
@end
所以当我读取 xml 文件时,我想将 xml 文件中的操作映射到类中的相应方法。
我认为我正在寻找类似的东西;
@interface CalculatorActions
[Action("addOperand", "Enter first operand")]
- (void) addOperand:(double)operand1 ToOther:(double)operand2;
最好的方法是什么?
【问题讨论】:
-
您使用什么规则将操作名称转换为方法名称?因为在您展示的示例中它们并不相同。
标签: objective-c ios xml cocoa-touch mapping