Ios 如何防止将相同的字符串添加到存储的数组中
我的tableViewCell存储字符串数组。每次按下按钮后输入新字符串时,它都会添加到该数组中。但是,我不希望将同一字符串添加到该数组中两次。如何防止添加它们?我还希望在发生复制时显示一条警告消息。在将任何对象添加到Ios 如何防止将相同的字符串添加到存储的数组中,ios,arrays,swift,Ios,Arrays,Swift,我的tableViewCell存储字符串数组。每次按下按钮后输入新字符串时,它都会添加到该数组中。但是,我不希望将同一字符串添加到该数组中两次。如何防止添加它们?我还希望在发生复制时显示一条警告消息。在将任何对象添加到数组之前检查数组是否已包含该对象,如下所示 if([yourArray containsObject:@"xyz"]){ // show alert } else{ [yourArray addObject:@"xyz"]; } 使用if和else并在if中检查输入
数组之前检查数组
是否已包含该对象,如下所示
if([yourArray containsObject:@"xyz"]){
// show alert
}
else{
[yourArray addObject:@"xyz"];
}
使用if
和else
并在if
中检查输入的元素是否存在else
将该元素输入数组:)试试这个
- (IBAction)btnClicked:(id)sender
{
if([arr_of_Strings containsObject:yourTextField.text])
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"ERROR"
message:@"Same Element"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
else
{
[arr_of_Strings addObject:yourTextField.text];
}
}
最好使用NSMutableOrderedSet
而不是数组。对于给定对象,有序集只能包含一个条目。如果尝试两次添加同一对象,则不会发生任何事情,因此不需要任何自定义代码
我不知道斯威夫特是否有一个有序的集合类。我不知道其中一个,但可可基金会类完全可以从SWIFT。
编辑:
谷歌的快速搜索显示了一个错误。我没有使用它,但从描述来看,它听起来很有希望。您只需要检查数组中是否存在该元素
这是一个例子
if (yourArray.contains(aStr!)) {
let alert = UIAlertView(title: "Warning", message: "This String is already in your array", delegate: self, cancelButtonTitle: nil, otherButtonTitles: "OK", nil)
alert.show()
}
希望这会有所帮助。如果单词的顺序不相关,您应该使用设置
Swift中的Set
是一个Struct
,不能包含多个相同值的实例
这是一个被剪掉的密码
class Foo {
var words = Set<String>()
func add(word:String) {
if words.contains(word) {
showMessageToUser()
} else {
words.insert(word)
}
}
func showMessageToUser() {
// ....
}
}
class-Foo{
var words=Set()
func add(字:字符串){
if words.contains(word){
showMessageToUser()
}否则{
单词。插入(单词)
}
}
func showMessageToUser(){
// ....
}
}