完全不知道该代码应该完成什么。它似乎打破了关于初始化方法的每一个约定。从初始化方法返回一个void指针有什么意义?初始化方法的全部要点是返回一个对象。在苹果的代码示例中,你看到了这个吗?
话虽如此,我不明白它为什么会泄漏。由于它不返回对象,因此该方法不会泄露任何内容。有可能是内部泄露的东西。
编辑:
It basically does an NSURLConnection. Because we are submitting a lot of forms with a lot of different values we put it in an external class. All the delegate methods like didFailWithError: are in NSURLRequest and connectionDidFinishLoading just passes the data to its delegate. So it doesn't really need to return anything as it is done through a delegate method.
是的,你需要重新设计这一点。目前,这种方法只是一场等待发生的灾难。如果没有别的,看着这个代码的其他人都会对你在做什么感到困惑。
如果您不需要保留创建的对象,然后移动它的分配并完全在一个方法内清理。将方法名称前缀从“initialize”更改为“setup”,“configure”,“acquire”等等,这样的名称并不意味着它会创建并返回对象。
如果您需要某个特定类的一次性实例,请使用类似Michael Aaron Safyan建议的类方法(同样不要在名称中初始化)。类方法应该在内部初始化一个实例,执行所需的操作,返回数据到任何地方,然后释放实例。
这样,您就不必担心泄漏,并且可能会读取您的代码的其他人(包括您自己的月份)都会立即明白代码的作用。
我会/不会/使用任何代码以'-initializeSomething'开始的方法:任何人不知道足够的Objective-C来命名他们的方法'-initSomething'可能不会正确地避免泄漏:可能听起来很刺耳,像这样的一个简单的错误可能实际上表明对工具集不熟悉。 – 2010-03-23 03:53:26
:/虽然你有一个点不是一个挑选?他可能会对缩短单词充满激情。其余的代码不会泄漏 – Rudiger 2010-03-23 04:25:35
Rudiger:遵循适当的命名约定是/总是/一个好主意。 – 2010-03-25 01:04:58