在iphone中将一个字符串的值附加到另一个字符串时遇到问题

在iphone中将一个字符串的值附加到另一个字符串时遇到问题,iphone,objective-c,Iphone,Objective C,我有一个应用程序,在该应用程序中,我试图将字符串的值附加到另一个字符串变量中,然后在tableview的detailtextlabel中显示该字符串变量。但我的查询是,我的字符串没有正确附加。可能是什么问题。这是我的代码: -(void)viewWillDisappear:(BOOL)animated { repeatArray = [[NSMutableArray alloc] init]; repeatArray = [[NSUserDefaults standardUser

我有一个应用程序,在该应用程序中,我试图将字符串的值附加到另一个字符串变量中,然后在tableview的detailtextlabel中显示该字符串变量。但我的查询是,我的字符串没有正确附加。可能是什么问题。这是我的代码:

-(void)viewWillDisappear:(BOOL)animated
{
    repeatArray = [[NSMutableArray alloc] init];
    repeatArray = [[NSUserDefaults standardUserDefaults]objectForKey:@"week"];

    if (sun && mon && tue && wed && thu && fri && sat) 
    {
        app.repeat =@"Every day";
    }
    else if (mon && tue && wed && thu && fri && !sat && !sun)
    {
        app.repeat = @"Every Week days";
    }
    else if (sat && sun && !mon && !tue && !wed && !thu && !fri)
    {
        app.repeat = @"Every Weekends";
    } 
    else if (sun || mon || tue || wed|| thu || fri || sat)
    {
        if (sun) 
        {
            app.repeat = @"Every Sunday";
            NSLog(@"weekday:%@",app.repeat);
        }
        if (mon)
        {
            app.repeat= @"Every Monday";
            NSLog(@"weekday:%@",app.repeat);
        }
        if(tue)
        {
            app.repeat = @"Every Tuesday";
            NSLog(@"weekday:%@",app.repeat);        
        }
        if(wed)
        {
            app.repeat = @"Every Wednesday";
            NSLog(@"weekday:%@",app.repeat);
        }
        if(thu)
        {
            app.repeat = @"Every Thursday";
            NSLog(@"weekday:%@",app.repeat);        
        }
        if(fri) 
        {
            app.repeat = @"Every Friday";
            NSLog(@"weekday:%@",app.repeat);
        }
        if(sat)
        {
            app.repeat = @"Every Saturday";
            NSLog(@"weekday:%@",app.repeat);
        }
    }
}
所有这些都正常。但我选择了周一和周二,然后只显示每周二。而不是显示“每周一,周二”


请帮我解决这个问题。

您不断地将重复字符串重置为一个新值,而不附加任何内容

试试这个:

repeat = [repeat stringByAppendingString:@"Every Tuesday"];

您必须自己编辑连接字符串以获得所需最终输出的方式,例如,上面的内容将给出“每周一、每周二”。

您可以不断地将重复字符串重置为新值,而无需附加任何内容

试试这个:

repeat = [repeat stringByAppendingString:@"Every Tuesday"];

您必须自己编辑连接字符串的方式以获得所需的最终输出,上面给出的示例为“每周一每周二”。

您没有附加字符串,您只是将
重复设置为新字符串。也许你想要这个

app.repeat = [NSString stringWithFormat:@"%@%@", app.repeat, @"Every Friday"];
或者更简单一点,这个

app.repeat = [app.repeat stringByAppendingString:@"Every Friday"];
而且,你有漏洞;您分配了一个数组,然后将
[[NSUserDefaults standardUserDefaults]objectForKey:@“week”]
返回的对象分配给该数组,从而失去对该数组的引用

编辑:好吧,您的原始代码是意大利面条-我的代码不会有帮助-但以下是您可以做的(尽管我自己永远不会这么做):


您没有追加字符串,只是将
repeat
设置为新字符串。也许你想要这个

app.repeat = [NSString stringWithFormat:@"%@%@", app.repeat, @"Every Friday"];
或者更简单一点,这个

app.repeat = [app.repeat stringByAppendingString:@"Every Friday"];
而且,你有漏洞;您分配了一个数组,然后将
[[NSUserDefaults standardUserDefaults]objectForKey:@“week”]
返回的对象分配给该数组,从而失去对该数组的引用

编辑:好吧,您的原始代码是意大利面条-我的代码不会有帮助-但以下是您可以做的(尽管我自己永远不会这么做):


我看不出你是如何附加字符串的。您只需创建一个新字符串。请参见以下方法:


    • 我看不出你是如何附加字符串的。您只需创建一个新字符串。请参见以下方法:


      您想要什么样的?“每周一和每周二”?@EmptyStack否选择周一和周二后,我想要“每周一、周二”请在将来更好地格式化您的问题。你的代码很难读。我已经给你格式化了。你要怎么做?“每周一和每周二”?@EmptyStack否选择周一和周二后,我想要“每周一、周二”请在将来更好地格式化您的问题。你的代码很难读。艾伦·泽诺,但当我选择星期一和星期二时,应该显示“每周一、周二”,我知道你想要的答案,但我不认为我应该用勺子喂你这个。用@“Every”创建一个字符串,然后追加所选日期,每次用逗号分隔。无论如何,你必须重构上面的代码。呃,我为你写了一个解决方案。检查以上内容。这是相当普通的,但希望你能看到你应该做些什么来检查字符串是新的还是要附加的。Alan Zeino但当我选择周一和周二时,应该显示“每周一、周二”我知道你想要的答案,但我不认为我应该用勺子喂你这个。用@“Every”创建一个字符串,然后追加所选日期,每次用逗号分隔。无论如何,你必须重构上面的代码。呃,我为你写了一个解决方案。检查以上内容。这是相当普通的,但希望你能看到你应该做些什么来检查这个字符串是新的还是要附加的。有没有可能评论一下为什么我的答案被否决了两次?如果不指出原因,我和任何阅读它的人都可以从中吸取教训,那么否决它就没有多大意义。有没有机会对我的答案为何被否决两次发表评论?如果不指出原因,我和任何阅读它的人都可以从中学习,那么否决它就没有多大意义。