• ios-UserDefaults


    //单例设计模式
        /*
        1、单例是一种设计模式  是开发人员在开发过程中总结出来的简单方法
        2、 如果某个对象在整个工程中有且只有一个(唯一的)就必须使用单例设计模式创建该对象
        3、单例设计模式创建的对象在整个工程的任意位置任意时间都是共享的 相当于全局变量 作用域在整个工程
         4、整个工程中可能创建多个对象指针  但是对象任意一个对象指针  指向的对象都是同一个  也就是指针指向同一个内存空间
         5、单例方法只有在第一次调用的时候创建一个对象  后面多次调用都不会创建新的对象  这样就确保该对象在整个工程中有且只有一个的
         6、单例方法是一个类方法  返回值是一个对象指针
         7、单例方法的命名格式:share/default+类名
        */
    

     //定义单例方法

    #import <Foundation/Foundation.h>
    @interface Forum : NSObject
    {
        NSMutableArray*infoArr;  //存放所有留言信息
    }
    //确保对象在整个工程中是唯一的
    +(Forum*)defaultForum;
    //添加内容
    -(void)addMessageInForum:(NSDictionary*)info;
    //内容包括两部分:一部分是用户的姓名  一部分是用户的留言信息
    
    //显示所有的留言内容
    -(void)showALLinfo;
    
    
    @end
    
    #import "Forum.h"
    @implementation Forum
    
    -(id)init   //初始化 数组infoArr
    {
        if (self=[super init]) {
            infoArr=[[NSMutableArray alloc]init];
        }
        return  self;
    }
    +(Forum*)defaultForum
    {
        static Forum*forum=nil;
        if (forum==nil) {
            forum=[[Forum alloc]init];
        }
        return  forum;
    }
    -(void)addMessageInForum:(NSDictionary *)info
    {
        [infoArr addObject:info];
    }
    -(void)showALLinfo
    {
       for(id  character in infoArr)
       {
    
           NSArray*keys=[character allKeys];
           NSLog(@"%@:%@",[keys lastObject],[character objectForKey:[keys lastObject]]);
       }
    
    }
    
    
    @end
    

     //Student 类

    #import <Foundation/Foundation.h>
    
    @interface Student : NSObject
    @property(nonatomic,retain)NSString*name;
    
    -(void)write:(NSString*)message;
    @end
    

     //单例方法的引用

    #import "Student.h"
    #import "Forum.h"
    @implementation Student
    
    -(void)write:(NSString*)message
    {
        Forum*newarr=[Forum defaultForum];
        NSMutableDictionary*dic=[NSMutableDictionary dictionaryWithObjectsAndKeys:message,self.name, nil];
        [newarr addMessageInForum:dic];
    }
    
    @end
    

     //Teacher类 同上

    //主函数调用

    #import <Foundation/Foundation.h>
    #import "Forum.h"
    #import "Teacher.h"
    #import "Student.h"
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
    
            //1、添加信息(信息包括  用户名称 用户留言)
            //2、将信息所有内容显示出来
            //3、添加内容的类有两个,一个老师类  一个学生类
            Teacher*t1=[[Teacher alloc]init];
            t1.name=@"lijie";
            [t1 writeinfo:@"1503"];
            Teacher*t2=[[Teacher alloc]init];
            t2.name=@"sun";
            [t2 writeinfo:@"飘过"];
            
            Student*s1=[[Student alloc]init];
            s1.name=@"xiao";
            [s1 write:@"hello"];
            Student*s2=[[Student alloc]init];
            s2.name=@"guang";
            [s2 write:@"nimenhao"];
            
            
            Forum*forum=[Forum defaultForum];
            [forum showALLinfo];
            
        }
        return 0;
    }
    

     //打印结果:

    2016-12-23 10:52:35.527 7.4论坛留言[18397:655774] lijie:1503
    2016-12-23 10:52:35.528 7.4论坛留言[18397:655774] sun:飘过
    2016-12-23 10:52:35.528 7.4论坛留言[18397:655774] xiao:hello
    2016-12-23 10:52:35.528 7.4论坛留言[18397:655774] guang:nimenhao

  • 相关阅读:
    【流量劫持】SSLStrip 终极版 —— location 瞒天过海
    【流量劫持】沉默中的狂怒 —— Cookie 大喷发
    【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持
    Web 前端攻防(2014版)
    流量劫持 —— 浮层登录框的隐患
    流量劫持能有多大危害?
    流量劫持是如何产生的?
    XSS 前端防火墙 —— 整装待发
    XSS 前端防火墙 —— 天衣无缝的防护
    XSS 前端防火墙 —— 无懈可击的钩子
  • 原文地址:https://www.cnblogs.com/sayimba/p/6214019.html
Copyright © 2020-2023  润新知