iOS开发教程之微博骨架搭建

2020-01-12 13:29:54王振洲

模型Column.h


//
// Column.h
// 20_帅哥no微博
//
// Created by beyond on 14-8-4.
// Copyright (c) 2014年 com.beyond. All rights reserved.
// 1个Column模型对应Dock上面的一个按钮,类别

#import <Foundation/Foundation.h>

// 数据模型 代表一个栏目
@interface Column : NSObject

// 栏目名称
@property (nonatomic,copy)NSString *columnName;
// 栏目图片名称
@property (nonatomic,copy)NSString *columnImgName;
// 栏目对应的控制器的类名
@property (nonatomic,copy)NSString *columnClassName;
// UI控件用weak,字符串用copy,其他对象用strong

// 提供一个类方法,即构造函数,返回封装好数据的对象(返回id亦可)
+ (Column *)columnNamed:(NSString *)columnName imgName:(NSString*)columnImgName className:(NSString *)columnClassName;

// 类方法,字典 转 对象 类似javaBean一次性填充
+ (Column *)columnWithDict:(NSDictionary *)dict;

// 对象方法,设置对象的属性后,返回对象
- (Column *)initWithDict:(NSDictionary *)dict;

@end

模型Column.m


//
// Column.m
// 20_帅哥no微博
//
// Created by beyond on 14-8-4.
// Copyright (c) 2014年 com.beyond. All rights reserved.
//

#import "Column.h"

@implementation Column
// 返回一个包含了 栏目对应控制器名字的 对象实例
+ (Column *)columnNamed:(NSString *)columnName imgName:(NSString *)columnImgName className:(NSString *)columnClassName
{
  // 为了兼容子类 使用self
  Column *column = [[self alloc]init];
  column.columnName = columnName;
  column.columnImgName = columnImgName;
  column.columnClassName = columnClassName;
  return column;
}


// 类方法,字典 转 对象 类似javaBean一次性填充
+ (Column *)columnWithDict:(NSDictionary *)dict
{
  // 只是调用对象的initWithDict方法,之所以用self是为了对子类进行兼容
  return [[self alloc]initWithDict:dict];
}

// 对象方法,设置对象的属性后,返回对象
- (Column *)initWithDict:(NSDictionary *)dict
{
  // 必须先调用父类NSObject的init方法
  if (self = [super init]) {
    // 设置对象自己的属性
    [self setValuesForKeysWithDictionary:dict];
  }
  // 返回填充好的对象
  return self;
}

@end

Dock里面的五个栏目按钮的数据来源ColumnList.plist

iOS开发教程之微博骨架搭建



注:相关教程知识阅读请移步到IOS开发频道。