我在AppDelegate-Class上分享我的字符串:
SpeakersAppDelegate *mainDelegate = (SpeakersAppDelegate *)[[UIApplication sharedApplication] delegate];
[mainDelegate setShareText:xmlString];
从AppDelegate-Class获取字符串:
SpeakersAppDelegate *mainDelegate = (SpeakersAppDelegate *)[[UIApplication sharedApplication] delegate];
NSString *xmlString = [mainDelegate getShareText];
如果我使用,没有问题:
xmlString = @"<rsp><photos><photo url='xyz.jpg' thumb='xyz.jpg' /></photos></rsp>";
但是当我使用时,应用程序崩溃了(xmlString正确获取了url的内容,问题是当xmlString填充了ContentFromURL时,从AppDelegate-Class中恢复了字符串):
xmlString = [NSString stringWithContentsOfURL:[NSURL URLWithString:url]];
有谁知道解决方案?谢谢你的帮助!
答案 0 :(得分:1)
stringWithContentsOfURL:
返回自动释放的字符串。因此,当自动释放池耗尽时(通常在处理完当前事件时),您的字符串将被释放。然后,您尝试访问它,繁荣。
我怀疑你的委托不管理xmlString的生命周期。您可能希望setShareText:
保留或复制字符串。小心释放任何以前的字符串。