我有一个数组控制器和一个用于数据输入的令牌字段。
我找不到使用令牌字段将标记化文本绑定到数组控制器的方法。
问题是当我使用令牌字段委托时,它返回一个NSArray
而不是我的实体的NSString
格式属性,并且在运行我的应用程序时,如果我使用这个令牌字段,我有一个错误,显示我不兼容的数据模式(属性接受NSString
而不是NSArray
) .
事实上,我可以处理令牌字段来显示令牌参数,但我不能处理令牌字段到数据数组的绑定!
我能做些什么来解决这个问题?
我有一个数组控制器和一个用于数据输入的令牌字段。
我找不到使用令牌字段将标记化文本绑定到数组控制器的方法。
问题是当我使用令牌字段委托时,它返回一个NSArray
而不是我的实体的NSString
格式属性,并且在运行我的应用程序时,如果我使用这个令牌字段,我有一个错误,显示我不兼容的数据模式(属性接受NSString
而不是NSArray
) .
事实上,我可以处理令牌字段来显示令牌参数,但我不能处理令牌字段到数据数组的绑定!
我能做些什么来解决这个问题?
我知道这是旧的,但我相信我有一个答案并愿意贡献它,因为标记字段的“值”的绑定没有很好地记录。事实上,Apple 文档具有误导性。
如果您只需要存储在核心数据中的字符串数组并且不处理representedObject
或令牌字段委托,那么您实际上可以在 XIB 和您的 xcdatamodel 中执行所有操作。
将核心数据实体的 NSString 属性切换为可以绑定到令牌字段的属性的第一步。您需要使属性成为可转换的类型。调用它tokenStringArray
。您已完成数据模型。(并且任何访问此属性的代码现在都应该期待一个字符串数组。)
令牌字段的值绑定希望连接到一个控制器,该控制器可以使用控制器键传递单个实体,并且该单个实体具有传递字符串数组的模型键路径。因此,如果您的阵列控制器选择单个实体,您将拥有selection
控制器键和tokenStringArray
模型键路径。选择“持续更新值”,否则保存可能不会立即持续。
而已。将可转换属性绑定tokenStringArray
到令牌字段的值后,用户对令牌字段的更改将被保留。
[对于它的价值,我个人有一个绑定到单个实体的对象控制器。要将令牌字段绑定到核心数据属性,似乎某种控制器必须是中间的,所以对我来说,它是对象控制器。如果您有一个表,用户选择的实体应填充令牌字段,那么您将使用数组控制器。令牌字段不能编辑数组控制器的arrangedObjects
——它只能从单个对象获取和传递数组。]