我是iOS新手。我想在我的应用程序中使用iToast。我跟着toast-notifications-ios
首先,当我创建iToast.m
时,我在这些行上有四个错误:
[label release];
[imageView release];
view = [v retain];
iToast *toast = [[[iToast alloc] initWithText:_text] autorelease];
在不同的示例中,我始终遇到release
和autorelease
的问题。我使用iOS 5.1,xCode 4.3.3。我看到很多使用它们的例子,但我总是遇到错误。你能让我知道为什么吗?
当我评论前三个错误行并使用第四个错误行时:
iToast *toast = [[iToast alloc] initWithText:_text];
我可以运行该项目但是当Toast弹出时,它永远不会消失。我在README.md
中使用了这一行:
[[[[iToast makeText:NSLocalizedString(@"Something to display a very long time", @"")]
setGravity:iToastGravityBottom] setDuration:iToastDurationShort] show];
我该如何解决这个问题?
答案 0 :(得分:0)
如果刚刚开始,您可能正在使用自动参考计数或ARC。使用此编译器为您处理内存并为您呈现retain
,release
和autorelease
。您可以为项目禁用ARC,也可以浏览提供的代码,并通过翻译retains
,releases
和autoreleases
使其符合ARC标准。
这解释了差异以及如何过渡: http://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html