传递变量错误

时间:2010-08-17 11:09:19

标签: iphone

我得到了这个恼人的错误并尝试了所有我知道但在这种情况下它没有帮助。

我在我的代表中......

vid_name = [push objectForKey:@"vid"];

(在控制台.... vid =“video”)

现在在我的正常页面中

NSString *videoName = [(MissileAppDelegate *)[[UIApplication sharedApplication] delegate] vid_name];

NSString *path = [[NSBundle mainBundle] pathForResource:videoName ofType:@"mp4"];

当我运行它并播放视频时,我得到的错误甚至与视频无关,它发生在我尝试使用[push objectForKey:@“vid”];传递的所有变量。如果我只是vid_name = @“视频”它工作正常。

任何想法?

亚历

1 个答案:

答案 0 :(得分:2)

首先,不要将您的变量命名为vid_name!您应该始终在Objective-C中使用vidName

你应该分享更多的信息,我不是真正得到你正在做的事情,你得到的错误信息将是利基。

但这听起来像是一个内存管理问题。因为当你使用@"video"时,这是一个始终存在的静态字符串。但是当你使用objectForKey:时,你会得到一个自动释放的对象,并且最终会在某个时候释放出来。因此,从“普通页面”访问vid_name时,请确保{{1}}仍然存在。

Cocoa Memory Management Programming Guide