Ios 如何在变量中存储按钮标记?

Ios 如何在变量中存储按钮标记?,ios,swift,xcode,Ios,Swift,Xcode,我有5个代表城市的按钮,我通过属性检查器为它们分配了标记,如下所示,城市为0,…..城市为4 有没有办法将这些标签存储到变量cityTag中,并确保在保存时如果没有按下任何按钮,我可以发送消息“请选择一个城市” 我创建了一个带有多个按钮的操作,但我不知道如何创建变量并将标记分配给它。因为您是通过属性检查器添加标记的,所以您可以通过sender.tag属性访问点击按钮的标记 最初创建一个NSMutableArray(它将保存所有按下按钮的标签),但在开始时显然是空的!您可以使用iAction中的s

我有5个代表城市的按钮,我通过
属性检查器
为它们分配了
标记,如下所示,
城市为0,…..城市为4

有没有办法将这些标签存储到变量
cityTag
中,并确保在保存时如果没有按下任何按钮,我可以发送消息
“请选择一个城市”


我创建了一个带有多个按钮的
操作
,但我不知道如何创建
变量
并将
标记
分配给它。

因为您是通过属性检查器添加标记的,所以您可以通过
sender.tag
属性访问点击按钮的标记


最初创建一个
NSMutableArray
(它将保存所有按下按钮的标签),但在开始时显然是空的!您可以使用
iAction
中的
sender.tag
属性访问标记。如果您的
NSMutableArray
在尝试保存时不包含标记,则可以显示警报。

初始化
citytag=-1
。当您按下按钮时更改citytag的值,如
citytag=sender.tag
,并检查是否
citytag==-1
,然后发送一条消息
请选择一个城市
否则
所选城市为###
为提高代码的可读性,您可以为该情况定义一个
枚举
,表示名称和名称标签以及:

例如:

enum City: Int {
    case .cityA,
    case .cityB,
    case .cityC
}
您可以将它们存储在
数组中

var cities: [City] = []
要设置一个城市:

if let cityA: City = City(rawValue: button.tag) {
    cities.append(cityA)
}
要读取
Int
值:

let rawValue: Int = cityA.rawValue
您可以尝试以下方法:

func checkbuttons -> BOOL {

   var countBtn = 0

   for view in self.view.subviews as [UIView] 
   {
       if let btn = view as? UIButton
       {
         if btn.isSelected
         {
           countBtn = countBtn + 1
         }
      }
   }
   if(countBtn > 0)
   {
      return true
   }
   else 
   {
      return false
   }
}
在返回的基础上,您将知道按钮是否被选中。
希望它能帮助您

您可以使用
NSDictionary
。我正在尝试将标记值存储在模型中。cities变量的值是否可以存储在核心数据中integer类型的属性中。您可以使用
NSNumber
类型的私有属性保存原始值,并在
CoreData
模型上编写扩展以映射通过他的getter和setter将该值传递给
City
enum。