一、Object-C中变量默认是私有的吗,方法默认是私有的吗?
Object-C中既有私有方法,也有私有变量。
1、先说私有方法:
由于Object-C的动态消息传递机制,OC中不存在真正意义上的私有方法。如果你不在.h文件中声明,只在.m文件中实现,或者在.m文件的Class Extension里面声明,那么基本上和私有方法差不多。
2、至于私有变量是可以通过@private来声明,例如:
@interface Sample : NSObject{
@private
NSString *tteesstt;
}
@property (nonatomic,strong) NSString *hoge;
- (void)foo;
@end
则tteesstt变量是私有的。而属性hoge是默认公有。
现在Apple官方文档里是用property比较多,直接定义instance variable(实例变量)少。将property定义到.m的Class Extension(类扩展)也基本上和私有变量差不多。
简而言之,将你希望公有的放到.h文件,私有的放到.m文件。在import时只import .h文件(.m文件也是可以import的,但是我们一般不这么做)。
二、请简述你对工厂方法的理解。
什么是工厂方法:在基类中定义创建对象的一个接口,让子类决定实例化那个类,工厂方法让一个类的实例化延迟到子类中进行。工厂方法要解决的问题的对象的创建 时机,它提供了一种拓展的策略,很好的符合了开放封闭原则,工厂方法也叫作虚构造器。
三、请简述StoryBoard和Xib的联系和区别
1、XIB的基础知识:
(1).xib = nib;
(2).xib的加载:
[[NSBundle mainBundle] loadNibName:@"rowView" ower:nil options:nil];
2、XIB和Storyboard的异同:
(1)不同:
storyboard:描述软件界面,大范围,重量级,比较适合描述整个软件的所有界面;
xib:描述软件界面,小范围,轻量级,比较适合描述小界面(局部界面)。
(2)相同:
都用来买书软件界面;
都用InterfaceBuilder工具来编辑。
3、File‘s owner的使用:
(1)在xib文件中设置file‘s owner的class属性
(2)建立File‘s owner 与控件之间的联系
(3)利用代码加载xib,传递owner参数
四、UITableView中有哪些必须要实现的数据源的方法。
1、每组的行数:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
2、每行的Cell:
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath