Ios prepareforsegue进入无限循环
我正在ViewController中保存一个图像,并希望在segue期间将其传递给下一个图像,但是这样做会导致无限循环 这是我的密码: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
- (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:
,以此类推。。。你得照罗格说的写。