<plist version="1.0"> <array> <dict> <key>name</key> <string>天天酷跑</string> <key>icon</key> <string>icon_00</string> </dict> <dict> <key>name</key> <string>全民飞机大战</string> <key>icon</key> <string>icon_01</string> </dict> </array> </plist>
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface AppInfoEntity : NSObject @property(nonatomic, copy) NSString *name; @property(nonatomic, copy) NSString *icon; @property(nonatomic, strong) UIImage *appImage; -(instancetype)initWithDict:(NSDictionary *)dict; +(instancetype)appInfoEntityWithDict:(NSDictionary *)dict; +(NSArray *)appInfoEntityList; @end
#import "AppInfoEntity.h" @implementation AppInfoEntity @synthesize appImage = _appImage; -(UIImage *)appImage { if(_appImage == nil) { _appImage = [UIImage imageNamed:self.icon]; } return _appImage; } -(instancetype)initWithDict:(NSDictionary *)dict { self = [super init]; if (self) { [self setValuesForKeysWithDictionary:dict]; } return self; } +(instancetype)appInfoEntityWithDict:(NSDictionary *)dict { return [[self alloc] initWithDict:dict]; } +(NSArray *)appInfoEntityList { NSString *path = [[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil]; NSArray *array = [NSArray arrayWithContentsOfFile:path]; NSMutableArray *mArray = [NSMutableArray array]; for(NSDictionary *dict in array) { [mArray addObject:[AppInfoEntity appInfoEntityWithDict:dict]]; } return mArray; } @end
相关推荐
iOS面试题整理主要涵盖了一些iOS开发中的核心概念和技术,包括对象复制、类别、继承、协议、KVC和KVO等。下面将详细解释这些知识点: 1. 浅复制与深复制: 浅复制只是复制对象的指针,指向相同的内存资源,而深复制...
Objective-C的动态性,如Category和KVC(Key-Value Coding)也是重点。 - Swift:Swift的语法特性如Optionals、Inference、.playground、闭包、泛型、枚举、协议和extension是面试官常考察的内容。 2. **内存管理*...
iOS的CoreData是苹果提供的一种强大的数据管理框架,用于在应用程序中存储、管理和检索数据。这个“iOS CoreData的小Demo”是一个很好的起点,对于初学者来说,它可以帮助理解并掌握CoreData的基本用法。在这个项目...
3. KVC和KVO:理解Key-Value Coding和Key-Value Observing,以及它们在实际编程中的应用场景。 二、UIKit与App生命周期 1. UIViewController的生命周期:掌握加载过程、状态保存和恢复、导航控制器的使用等。 2. ...
- VIPER(视图-交互器-提供者-实体-路由):复杂应用的分层架构模式,提高代码组织性。 4. **内存管理**: - 强引用、弱引用和无主引用:理解引用计数机制,防止循环引用导致的内存泄漏。 - Auto Layout和Size ...
1. **Objective-C与Swift**: 作为iOS开发的基础,你需要深入理解Objective-C的面向对象特性,如类别、协议、KVC(Key-Value Coding)和KVO(Key-Value Observing)。同时,Swift作为现代编程语言,它的特性和优势如...
字典是一种常见的数据结构,可以方便地存储键值对,而模型对象则是面向对象编程中的实体类,用于封装业务数据。将字典转化为模型对象可以提高代码的可读性和可维护性。本文将深入探讨iOS中进行字典到模型转化的几种...
1. **Objective-C/Swift基础知识**:作为iOS开发的基础语言,面试中可能会考察你对Objective-C的内存管理(如ARC机制)、Category、KVC/KVO的理解,以及Swift的Optionals、Protocol、闭包、Struct与Class的区别等。...
4. **KVC(Key-Value Coding)和KVO(Key-Value Observing)**:这两个机制允许间接访问对象属性,用于动态数据绑定和观察属性变化,常见于MVVM设计模式中。 5. **UI responder chain**:理解 responder chain 的...
4. **VIPER**:视图-交互器-呈现者-实体-路由模式。 ### 面试题112:什么是 runtime? **runtime** 是 Objective-C 的运行时系统,它支持动态消息传递、类和方法的查找、对象的创建等功能。运行时系统是 Objective...
Core Data是Apple提供的数据持久化框架,理解其实体、属性、关系、NSManagedObjects以及如何进行数据迁移,能有效地管理应用的数据。 9. **Notification** 使用NSNotificationCenter进行对象间通信,理解其工作...
面试题通常涵盖Objective-C或Swift的基础语法、内存管理、ARC机制、多线程、KVC与KVO、通知机制、GCD、设计模式(如单例、工厂、观察者等)、 MVC/MVVM/Viper架构、AutoLayout与SizeClass、SwiftUI、CoreData、网络...
2. **Objective-C特性**:"OC面试题讲解.pptx"可能详细解析Objective-C的动态性、消息机制、协议、分类、类别、KVC(Key-Value Coding)和KVO(Key-Value Observing)等特性。 3. **Swift特性**:"iOS面试题讲解....
理解其动态特性、类别(Category)、协议(Protocol)以及KVC(Key-Value Coding)和KVO(Key-View Observing)等概念至关重要。 2. **Cocoa Touch**: 是iOS开发的核心框架,包括UIKit、Foundation等子框架。它提供...
- Objective-C是iOS开发的传统语言,理解消息传递机制、类别、协议、KVC(Key-Value Coding)和KVO(Key-Value Observing)是基础。 - Swift作为现代替代,需要掌握其语法特性,如可选类型、闭包、泛型、枚举、...
4. **KVC与KVO**:Key-Value Coding和Key-Value Observing是Objective-C中的重要概念,用于动态属性访问和监听属性变化,面试时可能会要求你实现一个简单的KVO示例。 5. **Delegation与Notification**:这两种通信...
- Objective-C:了解类、对象、消息传递机制、协议、分类、KVC(Key-Value Coding)和KVO(Key-Value Observing)。 - Swift:理解类型系统、枚举、结构体、类的区别,闭包,可选类型,泛型,以及Swift的面向协议...
- Objective-C:理解消息传递机制、Category和Extension的作用、KVC(Key-Value Coding)与KVO(Key-Value Observing)。 - Swift:了解语法特性,如Optionals、Generics、Closures、Protocol Oriented ...
然后,通过 KVC(Key-Value Coding)设置对象的属性值。 5. **保存数据** 修改后,需要调用 MOC 的 `save()` 方法将更改持久化到存储中。在多线程环境中,可能需要在主队列上执行此操作以避免并发问题。 6. **...
类和对象是OC的核心概念,它们允许开发者定义和创建拥有特定属性和方法的实体。 属性(Properties)是Objective-C中的一个特性,它提供了一种声明和访问类的实例变量的方式。属性可以有多种类型,包括strong, weak,...