msh*_*yem 1 iphone cocoa objective-c
为什么我应该在方法中将局部变量声明为"静态"?喜欢:static NSString *cellIdentifier = @"Cell";
它是性能优势吗?(我知道'静态'的作用;在C语境中)
这个语法是什么意思?[someObj release], someObj = nil;
两个陈述?我为什么要再分配nil?"释放"不够吗?我应该为我分配/拥有的所有对象执行此操作吗?或者只是查看对象?
为什么每个人都复制NSString,但保留其他对象(在属性声明中)?是的,NSStrings可以更改,但其他对象也可以更改,对吧?那么为什么'复制'只是NSString,而不是所有?这只是一个防守大会吗?
我不应该释放不断的NSString吗?像这里:NSString *CellIdentifier = @"Cell";
为什么不呢?编译器是否为我分配/解除分配?
在一些教程应用程序中,我观察了这些(使用IB构建):属性(IBOutlet,具有相同的ivar名称):window, someLabel, someTextField, etc etc...
在dealloc方法中,虽然windowivar已经发布,但其他人没有.我的问题是:为什么?我不应该发布其他的ivars(标签,textField)吗?为什么不?
说,我有3个级联下拉列表.我的意思是,根据第一个列表中选择的内容,填充第二个列表,并根据第二个列表中选择的内容,填充第三个列表.哪些UI组件可以最好地反映出来?如何在iPhone UI中显示下拉列表?使用UIPicker的Tableview?我什么时候应该更新第2个,第3个列表?或者只有三个有触摸事件的标签?
你能给我一些关于Core-Data的好例子教程吗?(不只是简单的数据获取和存储在1/2关系的2/3表)
我怎么知道我的应用程序是否泄漏内存?有工具吗?
为什么我应该在方法中将局部变量声明为"静态"?喜欢: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 核心数据编程文档是一个很好的起点.
我怎么知道我的应用程序是否泄漏内存?有工具吗?