【问题标题】:Xcode - Accessing object tags without a case statmentXcode - 在没有 case 语句的情况下访问对象标签
【发布时间】:2012-02-23 13:01:15
【问题描述】:

我正在编写一个混音器应用程序,它有多个滑块对象,都带有单独的标签(从 0 到 5)。有没有办法在不使用 switch 语句的情况下更改它们的属性。例如,我的代码目前必须在大量案例语句中重复自己:

-(void)sliderupdate:(int)currentfader{
switch (currentfader) {
    case 0:
        channel0 = round(fader0.value*100);
        value0.text = [NSString stringWithFormat:@"%2d",channel0];
        knob0.center = CGPointMake(...;
        mute0.backgroundColor = ...;
        break;
    case 1:
        channel1 = round(fader1.value*100);
        value1.text = [NSString stringWithFormat:@"%2d",channel1];
        knob1.center = CGPointMake(...;
        mute1.backgroundColor = ...;
        break;

我可以简单地写一个表达式:

channel(x) = ....
value(x) = ....
knob(x) = ....

【问题讨论】:

    标签: objective-c ipad xcode4 tags storyboard


    【解决方案1】:

    不,但是您可以将这些 Channel 对象添加到 NSMutableArray 中并通过索引访问它们。值的不同数组和旋钮的不同数组。喜欢:

    [channelArray objectAtIndex:x];
    [valueArray objectAtIndex:x];
    [knob objectAtIndex:x];
    

    只需确保将它们以正确的顺序添加到它们的数组中。

    【讨论】:

    • 好的,那么您将如何以数组格式调整特定参数,例如旋钮1.center = ...? [knob ojectAtIndex:x].center 大概不会这样吧?
    • 它实际上是 :) [knobsArray objectAtIdex:x] 与旋钮 1 或旋钮 2 完全一样 自动完成可能不会给你所有的方法,如果你需要自动完成将从数组返回的对象转换为你想要的对象类型,说旋钮是 UIImageView 然后: ((UIImageView *)[knobsArray objectAtIdex:x]).center = ......
    • 这比我想象的要容易。我想我在将对象添加到 NSMutableArray 时犯了一个错误。你是否应该能够做到'[knobs addObject:knob0];'对于每个对象并在视图加载时拥有该代码?
    • 已解决 - 需要添加行 myMutableArray = [[NSMutableArray alloc] init];感谢您的帮助:)
    猜你喜欢
    • 2017-02-27
    • 2011-11-04
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    相关资源
    最近更新 更多