• 本文转发至:http://www.cnblogs.com/tmf-4838/p/5294036.html
  • 实例化一个类:从plist文件抽取出类

@interface Person : NSObject

// 实例化对象(抽取出类)
@property (nonatomic, strong)NSString *name;
@property (nonatomic, strong)NSString *tel;
@property (nonatomic, strong)NSString *pic; // 遍历初始化(参数是字典)
- (Person *)initWithDictionary:(NSDictionary *)dic;
+ (Person *)personWithDictionary:(NSDictionary *)dic;
@end
  • 使用字典作为自定义构造器的参数

#import "Person.h"

@implementation Person

// 自定义构造器
- (Person *)initWithDictionary:(NSDictionary *)dic
{
if (self = [super init])
{
_name = dic[@"name"];
_tel = dic[@"tel"];
_pic = dic[@"pic"];
}
return self; } // 类工厂方法
+ (Person *)personWithDictionary:(NSDictionary *)dic
{
return [[self alloc] initWithDictionary:dic]; } @end
  • 存储对象的不仅仅可以是该类的指针
  • 把plist文件实例化最大的好处:数据处理创建对应对象,取值操作数据变得很easy
  • 实例化对象后,不需要考虑plist文件格式,只需要找对应实例取值就OK
  • 注意:
  • 因为所有的数据都被实例化到一个集合,如果分区的话,每个区取值都是从0开始\

  • 因此这里使用实例化对象是得不到分区以及分区索引的:使用属性都在一个集合

  • 字典有时候更适合,不要思维定式为集合首选(面向对象的思想)

  •  // 初始化动态集合
    self.arrPerson = [NSMutableArray array];
    // 实例化该plist抽取出类的对象:通过字典赋值
    for (NSString *key in self.arrSection)
    {
    // 遍历字典所有value得到的是集合 for (NSDictionary *dic in self.dicData[key])
    {
    // 遍历该集合得到的每个人对象的信息(字典)\
    集合存储对象(对象的存储不仅仅局限于该类的指针)
    [self.arrPerson addObject:[Person personWithDictionary:dic]];
    }
    }
    // 测试数据存在
    NSLog(@"存储的任意对象key为name = %@", [self.arrPerson[12] name]);

iOS面向对象的建模:MVC(OC基础)的更多相关文章

  1. iOS开发系列--C语言之基础知识

    概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift ...

  2. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  3. iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误

    在开发的过程中难免会遇到很多的错误,可是当看到系统给出的英文时,又不知道是什么意思.所以这篇文章总结了Xcode中常见的一些英文单词及词组,可以帮助初学的人快速了解给出的提示.多练习,就肯定能基本掌握 ...

  4. OC基础知识总结 分类: ios学习 OC 2015-06-26 17:58 58人阅读 评论(0) 收藏

    //OC: Objective-C, 面向对象的C语言 //OC与C的区别 //1.OC是C的超集, C语言的所有语法都可以在OC中使用 //2.OC是面向对象 //3.OC是一门运行时语言 //4. ...

  5. 《iOS开发指南:从零基础到App Store上架(第2版)》

    <iOS开发指南:从零基础到App Store上架(第2版)> 基本信息 作者: 关东升 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115348029 上架时间:201 ...

  6. OC基础笔记目录

    OC基础(1) Objective-C简介 OC和C对比 第一个OC程序 面向对象思想 OC基础(2) 类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 OC基础(3) 对象 ...

  7. OC基础16:复制对象

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.浅复制即是指针赋值,复制对象的修改会影 ...

  8. OC基础8:分类和协议

    "OC基础"这个分类的文章是我在自学Stephen G.Kochan的<Objective-C程序设计第6版>过程中的笔记. 1.关于分类(category): (1) ...

  9. OC基础回想(十二)协议

    在OC基础(十一)中我们讨论了类别和非正式协议的奇异之处.在使用非正式协议时.能够仅仅实现你想要获得响应的方法.也不必在对象中声明不论什么内容来表示该对象可用作托付对象. 全部这些任务能够用最少的代码 ...

随机推荐

  1. vs找不到svn源代码管理插件之我见

    使用svn要安装两个文件,一个客户端:TortoiseSVN-1.8.msi,一个插件:AnkhSvn-2.5.msi:两个都安装好之后,在vs的tool(工具)选项卡中,选择自定义,然后选择sour ...

  2. POJ 3597 种类数 数学+递推

    http://poj.org/problem?id=3597 题目大意:把一个正多边形分成数个三角形或者四边形,问有多少种方案. 思路:http://www.cnblogs.com/Ritchie/p ...

  3. MyEclipse10.6、Maven、svn集成

    这几天整理maven,根据开发部署需要,需要把原先的myeclipse下的普通javaWeb工程用maven管理,弄了2天,主要还是在jar包的引入上,总是少- -! 好了,下面记录一下我的安装过程: ...

  4. json的引号之伤

    最近读他们的jquery解读的源码,由于版本不同,我可能看的是他们解读的1.7的,但是我本身运行的可能是1.9的,所以有些出处,但是中心思想不变,我有疑问的时候,直接debug,让例子自己走一遍,好处 ...

  5. yum no key

    http://serverfault.com/questions/525958/redhat-yum-install-gpg-key-retrieval-failed

  6. ASP.NET中使用Server.Transfer()方法在页间传值 实例

    以下代码在VS2008中测试通过 <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...

  7. wpf CollectionViewSource与ListBox的折叠、分组显示,及输入关键字 Filter的筛选

    在wpf中虽然ObservableCollection<T>作为ListBox的Itemsource,很好,很强大!但是CollectionViewSource与ListBox才是天作之合 ...

  8. 【中国剩余定理】 poj 1006

    生理周期  简单模拟 对于超出23 * 28 * 33(21252)时进行求余运算即可. #include<stdio.h> int main() { //freopen("in ...

  9. POJ 2318 TOYS 叉积

    题目大意:给出一个长方形盒子的左上点,右下点坐标.给出n个隔板的坐标,和m个玩具的坐标,求每个区间内有多少个玩具. 题目思路:利用叉积判断玩具在隔板的左方或右方,并用二分优化查找过程. #includ ...

  10. JSP中文编码问题

    这个乱码问题是最简单的乱码问题.一般新会出现.就是页面编码不一致导致的乱码. <%@ page language="java" pageEncoding="UTF- ...