相关疑难解决方法(0)

将Enum分配给Objective-C中的变量

如何为变量分配并在以后访问其值?我认为这很简单,但每次我尝试将enum值赋给变量(Xcode中没有类型不匹配或警告出现)时,我的应用程序崩溃并出现EXC_BAD_ACCESS错误.

以下是我enum在头文件(BarTypes.h)中设置的方法:

typedef enum {
    BarStyleGlossy,
    BarStyleMatte,
    BarStyleFlat
} BarDisplayStyle;
Run Code Online (Sandbox Code Playgroud)

没有问题(至少阅读和使用这些值).但是,当我创建一个可以存储其中一个enum值的变量(BarStyleGlossy,BarStyleMatteBarStyleFlat)然后尝试设置该变量时,应用程序崩溃了.以下是我设置和使用变量的方法:

//Header
@property (nonatomic, assign, readwrite) BarDisplayStyle barViewDisplayStyle; //I've also tried just using (nonatomic) and I've also tried (nonatomic, assign)

//Implementation
@synthesize barViewDisplayStyle;

- (void)setupBarStyle:(BarDisplayStyle)displayStyle {
    //This is where it crashes:
    self.barViewDisplayStyle = displayStyle;
}
Run Code Online (Sandbox Code Playgroud)

为什么会在这里崩溃?如何将枚举的值存储在变量中?我认为这个问题与enums我最终缺乏理解有关,但如果我遵循传统的变量设置和分配等,这应该有效.关于我做错了什么的任何想法?

请注意我是enums的新手,所以我的词汇可能有些混乱(原谅我 - 如果你知道我想说的话,可以自由编辑).

我发现了一些关于enums网络的参考文献:

enums runtime-error objective-c ios

3
推荐指数
1
解决办法
6028
查看次数

iOS - 这是枚举的任务吗?

如果我想实现以下代码,枚举是否合适?我在枚举上查了几个问题,但我还是有点不确定.

if (dayOfWeek == Monday)
{
    // Do something
}
else if (dayOfWeek == Tuesday || dayOfWeek == Wednesday)
{
    // Do something else
}
Run Code Online (Sandbox Code Playgroud)

如果这看似正确,我将如何初始化枚举?它会进入标题或实现文件吗?

enums initialization ios

2
推荐指数
1
解决办法
1065
查看次数

目标C方法签名是否可以指定枚举类型?

可能重复:
目标C方法签名是否可以指定枚举类型?

"VoiceName"是一个枚举,声明如下:

enum VoiceName {
    PAD_RHYTHM,
    PAD_RHYTHM2,
    PAD_RHYTHM3,
    PEEPERS,
    ATMOSPHERE,
    IMPULSE,
    FAST_PULSE,
    HAIRYBALLS_PADS,
    KICK
};
Run Code Online (Sandbox Code Playgroud)

编译器似乎不喜欢我在这样的方法签名中使用它:

-(void)pulseFiredWithSamplePosition:(float)position from: (VoiceName) voiceName;
Run Code Online (Sandbox Code Playgroud)

在"VoiceName"之前告诉我预期')'.这里发生了什么?

objective-c

1
推荐指数
1
解决办法
3274
查看次数

Objective-C中枚举的类型是什么

我只想弄清楚值本身是否为int,unsigned int,NSInteger.我以为我看到有人说他们是无符号的整数,但在Apple的头文件中,我看到它们用来存储负值.

enums objective-c

1
推荐指数
1
解决办法
382
查看次数

typedef在C中的区别?

C语言中有以下几点有什么区别:

typedef enum month_t
{
jan,
feb,
march
}month;
Run Code Online (Sandbox Code Playgroud)

typedef enum
{
monday,
tuesday,
wednesday
}day;
Run Code Online (Sandbox Code Playgroud)

在发布这个问题之前,我读到了:Objective-C中的typedef枚举是什么?

但是不太了解......

c typedef

1
推荐指数
1
解决办法
198
查看次数

标签 统计

enums ×3

objective-c ×3

ios ×2

c ×1

initialization ×1

runtime-error ×1

typedef ×1