很少有iPhone noob问题

msh*_*yem 1 iphone cocoa objective-c

  1. 为什么我应该在方法中将局部变量声明为"静态"?喜欢:static NSString *cellIdentifier = @"Cell"; 它是性能优势吗?(我知道'静态'的作用;在C语境中)

  2. 这个语法是什么意思?[someObj release], someObj = nil; 两个陈述?我为什么要再分配nil?"释放"不够吗?我应该为我分配/拥有的所有对象执行此操作吗?或者只是查看对象?

  3. 为什么每个人都复制NSString,但保留其他对象(在属性声明中)?是的,NSStrings可以更改,但其他对象也可以更改,对吧?那么为什么'复制'只是NSString,而不是所有?这只是一个防守大会吗?

  4. 我不应该释放不断的NSString吗?像这里:NSString *CellIdentifier = @"Cell"; 为什么不呢?编译器是否为我分配/解除分配?

  5. 在一些教程应用程序中,我观察了这些(使用IB构建):属性(IBOutlet,具有相同的ivar名称):window, someLabel, someTextField, etc etc... 在dealloc方法中,虽然windowivar已经发布,但其他人没有.我的问题是:为什么?我不应该发布其他的ivars(标签,textField)吗?为什么不?

  6. 说,我有3个级联下拉列表.我的意思是,根据第一个列表中选择的内容,填充第二个列表,并根据第二个列表中选择的内容,填充第三个列表.哪些UI组件可以最好地反映出来?如何在iPhone UI中显示下拉列表?使用UIPicker的Tableview?我什么时候应该更新第2个,第3个列表?或者只有三个有触摸事件的标签?

  7. 你能给我一些关于Core-Data的好例子教程吗?(不只是简单的数据获取和存储在1/2关系的2/3表)

  8. 我怎么知道我的应用程序是否泄漏内存?有工具吗?

Jer*_*myP 5

为什么我应该在方法中将局部变量声明为"静态"?喜欢:static NSString*cellIdentifier = @"Cell"; 这是性能优势吗?(我知道'静态'的作用;在C语境中)

static-Objective在Objective-C中与在正常C中相同.

这个语法是什么意思?[someObj release],someObj = nil; 两个陈述?我为什么要再分配nil?"释放"不够吗?我应该为我分配/拥有的所有对象执行此操作吗?或者只是查看对象?

这取决于具体情况.它停止有任何过度释放对象的可能性,因为后续释放消息将被发送到nil.

为什么每个人都复制NSString,但保留其他对象(在属性声明中)?是的,NSStrings可以更改,但其他对象也可以更改,对吧?那么为什么'复制'只是NSString,而不是所有?这只是一个防守大会吗?

NSStrings不能更改,但NSMutableStrings(子类)可以.是的,这是一个防御性的公约.

我不应该释放不断的NSString吗?像这里:NSString*CellIdentifier = @"Cell"; 为什么不?编译器是否为我分配/解除分配?

阅读Cocoa内存管理规则.你是通过alloc,copy还是new获得常量字符串?不,你没有.因此,除非您先保留它,否则不要释放它.保留恒定的字符串不会有害.

在一些教程应用程序中,我观察了这些(使用IB构建):属性(IBOutlet,具有相同的ivar名称):window,someLabel,someTextField等等......在dealloc方法中,虽然窗口ivar已经释放,但其他人却没有.我的问题是:为什么?我不应该发布其他的ivars(标签,textField)吗?为什么不?

同样,内存管理指南也会有所帮助.如果对象保留了ivar(或者使用alloc,copy等创建了它),则需要释放它.

说,我有3个级联下拉列表.我的意思是,根据第一个列表中选择的内容,填充第二个列表,并根据第二个列表中选择的内容,填充第三个列表.哪些UI组件可以最好地反映出来?如何在iPhone UI中显示下拉列表?使用UIPicker的Tableview?我什么时候应该更新第2个,第3个列表?或者只有三个有触摸事件的标签?

通过.我不在iPhone上进行UI编程.

你能给我一些关于Core-Data的好例子教程吗?(不只是简单的数据获取和存储在1/2关系的2/3表)

Apple'as 核心数据编程文档是一个很好的起点.

我怎么知道我的应用程序是否泄漏内存?有工具吗?

试试http://developer.apple.com/iphone/library/documentation/Performance/Conceptual/ManagingMemory/Articles/FindingLeaks.html