Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios prepareforsegue进入无限循环_Ios_Objective C_Segue - Fatal编程技术网

Ios prepareforsegue进入无限循环

Ios prepareforsegue进入无限循环,ios,objective-c,segue,Ios,Objective C,Segue,我正在ViewController中保存一个图像,并希望在segue期间将其传递给下一个图像,但是这样做会导致无限循环 这是我的密码: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"next"]) { ReviewViewController *rvc = [segue destinat

我正在ViewController中保存一个图像,并希望在segue期间将其传递给下一个图像,但是这样做会导致无限循环

这是我的密码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"next"])
    {
        ReviewViewController *rvc = [segue destinationViewController];
        [rvc setFilename:self.filename];
    }
}
ReviewViewController
中的
setFilename
方法如下所示:

- (void)setFilename:(NSString *)filename{
    NSLog([NSString stringWithFormat:@"Setting filename to: %@",filename]);
    self.filename = filename;
}
当我添加
prepareForSegue
方法时,log语句会无限地发出。如果我将其移除,则过渡很好


发生了什么?

正如许多人在评论中指出的那样,答案是
self.filename=
实际上调用了
[self-setFilename]
,这就是我所谓的方法


这可以通过重命名我的
setFilename
方法或通过
\u filename=
执行赋值来解决。

NSLog已经是格式化字符串:NSLog(@“将filename设置为:%@”,filename)@JörnBuitink谢谢你的提示!在调用
self.filename=filename
时,您的setFilename方法导致了递归,该方法有效地调用了
setFilename:
方法。试试
\u filename=filename”。@Rog修复了它。你能不能用更详细一点的答案来说明为什么那项作业不起作用?谢谢确切地问题是因为
self.filename=filename
调用
setFileName:
,以此类推。。。你得照罗格说的写。