对Xib感到困惑并且以编程方式

时间:2011-03-13 05:15:48

标签: objective-c

我是iphone开发的新手。我在这里有一些问题。

  1. 我知道IB是UI设计的便利工具,您也可以通过编程方式完成大部分工作。我只是想知道,我什么时候应该创建一个没有IB的接口控件,为什么会这样。我想为此养成一个好习惯。非常感谢你。一位朋友告诉我,当应用程序考虑效率时,我应该以编程方式创建接口控制器,还是其他任何情况?

  2. 我正在学习Mac上的Learn Objective c。它表示" Apple建议您避免在自己的代码上使用自动释放"。那么,这是否意味着我不能使用" autorelease"或者我应该避免使用它。例如,我可以在自己的代码中使用以下代码进行iphone开发吗?

    @Interface Test {    
       A* a;  
    }
    
    @Implementation {  
       a = [[[A alloc]init]autorelease];  
    }
    
  3. 感谢您抽出时间阅读本文。我期待着答案:D。

3 个答案:

答案 0 :(得分:0)

  1. 有关效率的讨论,请参阅Matt Gallagher的blog post。简而言之,一种方法可能不会比另一种更有效。当然,这取决于您的具体应用。一般来说,在设计用户界面时做最舒适的事情。根据需要进行优化。

答案 1 :(得分:0)

  1. 有时创建自定义控件需要您以编程方式构建它们。

  2. 不,这不是你不能使用自动翻译,只是使用它会增加内存管理的负担。但在某些情况下,您可能没有选项,例如当您有一个返回临时对象的方法时。使用保留/释放方法手动控制对象寿命是iPhone开发中的推荐方法。有关详细信息,请参阅Autorelease pool

答案 2 :(得分:0)

1)如果您正在进行基本视图,接口构建已经准备好了小部件,那么使用界面构建器,它将使您的生活更轻松。此外,如果您刚刚开始,它将让您更快地获得一些示例代码。我不是界面构建者的忠实粉丝,但是如果你必须维护代码,那么你就会很好地理解它。

2)我不认为自动释放是一件坏事。如果您正在编写单线程代码,则不必担心。然而,可以回过头来咬你的是你实际上并不知道什么时候会被释放。因此,如果编程效果不佳,并尝试引用稍后在代码中自动释放的对象,则可能会出现不一致的行为。我自动发布,但我也非常擅长保留/释放我传递这些对象的代码的其他部分。