常见面试题二

  1. Objective-C中的@property
    这里有一篇文章写的挺好:关于property
  • 它是声明属性的关键字,系统会为该属性自动创建setter和getter方法(也就是accessor存取器)
  • 早期xcode版本中,需要@property和@synthesize配合使用,前者声明属性,后者指定合成的方法指向的变量名。可参见property和synthesize@property相关
  • @synthesize的作用,可参见如下代码
@interface ViewController ()
@property (nonatomic, copy) NSString *name;
@end
@implementation ViewController {
        NSString *baseView;
}
@synthesize name = $name;
-(void)setName:(NSString *)newName {
        $name = newName;
        // name = newName; // 这样是不对的,因为synthesize告诉编译器成员变量叫$name,而不是name;
}
-(void)viewDidLoad {
        [super viewDidLoad];
        $name = @"";
}
@end
  1. Block
    很多关于block的文章都声明block是函数,这一点是错的。首先,Block是对象,这在apple的文档中有介绍:Working with Blocks
    Blocks Programming Topics
  1. 关于面向对象
    这里有一篇文章写得挺好:OC中面向对象的编程思想
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容