精华内容
下载资源
问答
  • app在手机或模拟器名字,我们可以在工程中的Info.plist文件后添加一条“Bundle display name”,其Value就是你要更改名字。 如图,我添加了Bundle display name,值是KK,那么我这个工程运行出来app名字就是...

    app在手机上或模拟器的名字,我们可以在工程中的Info.plist文件后添加一条“Bundle display name”,其Value就是你要更改的名字。

    如下图,我添加了Bundle display name,值是KK,那么我这个工程运行出来app名字就是KK。

    展开全文
  • OC中得Protocol

    2015-09-02 17:40:08
    在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在OC里面,Interface是一个类的头文件的声明,并不是真正意义上的接口的意思。 在OC,接口是由一个叫做协议的protocol来实现的。...

    在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在OC里面,Interface是一个类的头文件的声明,并不是真正意义上的接口的意思。

    在OC中,接口是由一个叫做协议的protocol来实现的。这个里面可以声明一些方法,和java不同的是,它可以声明一些必须实现的方法和选择实现的方法。这个和java是完全不同的。

    下面我们就用一个例子来说明这个吧。
    首先是MyProtocol.h也就是接口的声明文件 
     MyProtocol.h  
        #import <Foundation/Foundation.h>   
        @protocol MyProtocol <NSObject>  
        @optional  
        //这个方法是可选的  
        - (void) print:(int) value;  
        @required  
        //这个方法是必须实现的  
        - (int) printValue:(int) value1 andValue:(int) value2;   
        @end  

    然后是Mytest.h也就是类的声明文件,这个类讲实现这个接口

    MyTest.h  
        #import <Foundation/Foundation.h>  
        #import "MyProtocol.h"  
        @interface MyTest : NSObject <MyProtocol>   
        - (void) showInfo;   
        @end  


    下面就是实现文件了
    MyTest.m  
        #import "MyTest.h"  
        @implementation MyTest  
        - (void) showInfo  
        {  
            NSLog(@"show info is calling");  
        }   
        - (int) printValue:(int)value1 andValue:(int)value2  
        {  
            NSLog(@"print info that value1 is %d and value2 is %d",value1,value2);  
            return 0;  
        }  
        //下面的这个方法可以实现也可以不实现  
        - (void) print:(int)value  
        {  
            NSLog(@"print is value is %d",value);  
        }  
        @end  


    这样我们就可以看出了,这个类实现了接口也就是协议的声明的方法,然后还定义了自己的类方法。

    下面我们来看一下主函数来使用这个接口,我将分别使用两种方式来使用这个类,一个是基本的方法就是使用类的创
    建来调用,另一个就是使用接口来调用
    main.m   
    #import <Foundation/Foundation.h>  
    #import "MyTest.h"  
    #import "MyProtocol.h"   
    int main(int argc, const char * argv[])  
    {  
        @autoreleasepool {    
            //这里是普通的类的调用方法  
            MyTest * myTest = [[MyTest alloc] init];  
            [myTest showInfo];  
              
            SEL sel = @selector(print:); 
            //可选回调,先判断是否这个类实现了这个方法,再调用  
            if([myTest respondsToSelector:sel]){  
                    [myTest print:20];  
            }  
              
          
            [myTest printValue:25 andValue:15];  
            [myTest release];  
              
            //下面的方法使用协议的方式来调用  
            id<MyProtocol> myProtocol = [[MyTest alloc] init];  
            if([myProtocol respondsToSelector:@selector(print:)]){  
                [myProtocol print:210];  
            }  
              
            [myProtocol release];  
        }  
        return 0;  
    }  

    总结:

    1.Protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现。
    2.只要某个类遵守了这个协议,就拥有了这个协议中的所有方法声明。
    3.只要父类遵守了某个协议,那么子类也遵守。
    4.Protocol声明的方法可以让任何类去实现,protocol就是协议。
    5.OC不能继承多个类(单继承)但是能够遵守多个协议。继承(:),遵守协议(< >)
    6.基协议:<NSObject>是基协议,是最根本最基本的协议,其中声明了很多最基本的方法。
    7.协议可以遵守协议,一个协议遵守了另一个协议,就可以拥有另一份协议中的方法声明。

    补充:

    1.协议的定义
        @protocol 协议名称 <NSObject>
        //方法声明列表
        @end;
    2.如何遵守协议
    (1)类遵守协议
        @protocol 类名:父类名 <协议名称1,协议名称2>
        @end
    (2)协议遵守协议
        @protocol 协议名称 <其他协议名称>
        @end;
    3.协议方法声明中的关键字
        (1)required (默认)要求实现,若没有实现则警告但不报错
        (2)Optional 不要求实现
    4.定义变量时遵守协议的限制
        类名<协议名称> *变量名    NSObject<.Myprotocol> *obj;
        Id  <协议名称>  变量名   id  <.Myprotocol> obj1; 
    5.Property中声明的属性也可以做遵守协议的限制
        @property (nonatomic ,strong ) 类名<协议名称> *属性名;
        @property (nonatomic ,strong ) id<协议名称>  属性名;
    6.补充知识:协议本身写在.h头文件中,但也可以定义在任何地方。当这个协议只有这个类使用遵守时,一般把协议写在这个类里边,当这个协议需要多个类去实现时,就写在外边单独的文件中。

     
    展开全文
  • 鄭振鐸先生是二十世紀國文壇頗具影響、輝映時代文化大家,在文學研究、文化創作、文學翻譯、文物品鑒、組織開展文化運動等方面,建樹甚多,厥功至偉。其傾力所著之《文學大綱》、《插圖本國文學史》、《國...

    「有的人玩郵票,有的人收碎磁片,有的人愛打球,有的人好聽戲,好拉拉小提琴或者胡琴。有的人就不該逛逛書攤嗎?夕陽西下,微颸吹衣,訪得久覓方得之書,挾之而歸,是人生一樂也!」

    鄭振鐸先生是二十世紀中國文壇上頗具影響、輝映時代的文化大家,在文學研究、文化創作、文學翻譯、文物品鑒、組織開展文化運動等方面,建樹甚多,厥功至偉。其傾力所著之《文學大綱》、《插圖本中國文學史》、《中國俗文學史》等皇皇巨著,既具有學術研究之開創之功,且影響至今,沾溉當代。作為一位慧眼獨具的知名學者,僅以其訪書、購書、淘書、藏書、鑒書之非凡閱歷,亦足以垂範後人。當時,抗戰軍興,艱苦卓絕,烽煙薰人,狼彘遍地,先生與諸多富有良知與正義感的文化學人一樣,或避居滬上,或往返各地,奔走呼號,救亡圖存。然而,作為一名摯愛傳統文化的學者,則稍有閒暇,生活中略得片刻安寧,甚至於戰禍綿延之罅隙間,亦不失讀書人的本真底色,以訪書、淘書、讀書為務,並將其過程與感悟逐一記下,取名《劫中得書記》,刊發於當時開明書店所編輯發行的《文學集林》中,獲得了時人的交口贊譽,影響甚為廣泛,被譽為漫漫長夜裡的一點溫馨的漁火,是照亮讀者心頭的希望之光。當時,便有許多文化人渴求得到該書之單行本,據著者自述,開明書店也確實已將其排印成書,並打好了紙型,但不知何故,終沒有開機印刷,直至解放後才由上海古典文學出版社印行,成為膾炙人口的經典之作。

    摘錄一節文字:

    余有志於編刊明曲,獲此,得助不少。初,余於課余偶過中國書店,遇(金)性堯,立談甚久。夜色蒼茫,燈火逐漸四現,正欲歸去,抱經堂主人朱瑞祥忽攜數冊破書來,要郭石麒鑒閱。余久不與之交易,姑問有何好書。彼雲:新從杭州收得此數種。略一翻閱,赫然有《樂府先春》在,首附插圖八幅,為黃應光所鐫,圖中人物,古樸類唐畫。書分三卷,首卷有套數二十,上卷有套數六十五,下卷有套數五十七,題松江陳眉公選,其刊刻年代當與《吳騷集》約略同時(萬曆四十年左右)。余得之,不忍釋手。詢價,索金五十。立即收得,不復躊躇觀望,蓋一失之,即不可復得也。方斥售「曲庫」中物大半,精本盡去,不意乃復得此,誠自喜!中有俞羨長、姜鳳阿、鄭翰卿、朱射皮、李復初等十餘家曲,皆他處所未見者。抱書而歸,滿腔喜悅,不復顧及餐時已過,飢腸碌碌矣。

    吾人何幸,生活於寧靜繁盛之時代,遠離硝煙,不見凶頑,既可端起碗來吃肉,又能放下筷子罵娘,工作之暇,月白風清,或獨處一室,或邀約友朋,品茗觀書,其快活當如羲皇上人,誠然不為飾詞也。

    展开全文
  • 我在做项目遇到了一个上传两个身份证头像得问题,当我点击得时候居然发现一个点击事件中得函数触发了。后来才注意到由于我之前点击了得,所以第一个点击事件之后得函数如果在下一个点击事件存在得话,这样就...

    我在做项目中遇到了一个上传两个身份证头像得问题,当我点击得时候居然发现上一个点击事件中得函数触发了。后来才注意到由于我之前点击了得,所以第一个点击事件之后得函数如果在下一个点击事件中存在得话,这样就冲突了,所以我们需要清楚点击事件即可,我写的代码如下:以及为了防止自己忘记得笔记:
    注意一下点击事件,当下一个点击事件中如果包含了上一个点击中相同的事件,那么上一个事件还是会出发的,因为上一个点击事件已经点击过了,后来的函数还是会触发,比如包含了一个第二个点击事件中相同的事件,其实本质还是因为函数的逻辑。
    工作代码:

    $(function() {
        $('.picFrist').click(function() {
            $('.big_box').toggle();
        });
        $('.picLast').click(function() {
            $('.big_box').toggle();
        });
        $('.del').click(function() {
            $('.big_box').toggle();
        })
    
        // 点击上传身份证图片1区域
        $('.up_top').click(function() {
                console.log(789);
                // 隐藏十字样式
                $('.top_id_pic_one, .top_id_pic_two').toggle();
                console.log(456);
                // 点击之后弹窗出来
                $('.big_box').toggle();
                // 然后是上传到top的操作
                // 点击从相册选取后再由js实现自动点击input
                // 点击down之后还是会触发这个 然后把这个取消掉
                $('.choose_toggleBox').click(function() {
                    // 取消
                    $('.choose_toggleBox').off('click')
                        // 自动触发事件
                    $('#choose_file').trigger("click");
                })
    
                // 点击拍照后再由js实现自动点击input
                $('.choose_pic').click(function() {
                    // 取消
                    // 
                    $('.choose_pic').off('click')
                        // 自动触发事件
                    $('#choose_file_capture').trigger("click");
                })
    
                // 调取后台上传头像接口
                // 利用ajax包调取修改登录密码接口数据
                // 从相册选取图片自动触发事件
                     $('#choose_file').change(function()  {            
                        let  file  =  $("#choose_file")[0].files[0];    //选择的图片文件
                        console.log($("#choose_file")[0]);            
                        let  formDatas  =  new  FormData();            
                        formDatas.append('file',  file);
                        console.log(file)
                        $.ajax({
                            url: 'http://mobile.btcnews.online/index.php/api/Headsculpture/get_path',
                            type: 'post',
                            processData: false,
                            contentType: false, //"multipart/form-data"
                            data: formDatas,
                            dataType: "json",
                            success: function(data, id) {
                                console.log(data, id)
                                Api.doPost("Headsculpture/upload_Headsculpture", { path: data.url, id: '1' }, function(res) {
                                    console.log(data.url)
                                    console.log(res)
                                        // 图片位置: http://mobile.btcnews.online/public/uploads/20200721/777d33db5f0732abc4527ceb74dd0434.jpg
                                        // 将头像的img的src改为这个地址即可
                                    let img_url = data.url;
                                    // 修改uptop的背景样式即可 给个图片背景
                                    // $('.pic img').attr('src', `http://mobile.btcnews.online/public${img_url}`)
                                    $('.up_top').css('background', `url(http://mobile.btcnews.online/public${img_url})`)
                                })
                            }
                        })
                    })
                    // 从拍照选取图片自动触发事件
                         $('#choose_file_capture').change(function()  {            
                        let  file  =  $("#choose_file_capture")[0].files[0];    //选择的图片文件
                        console.log($("#choose_file_capture")[0]);            
                        let  formDatas  =  new  FormData();            
                        formDatas.append('file',  file);
                        console.log(file)
                        $.ajax({
                            url: 'http://mobile.btcnews.online/index.php/api/Headsculpture/get_path',
                            type: 'post',
                            processData: false,
                            contentType: false, //"multipart/form-data"
                            data: formDatas,
                            dataType: "json",
                            success: function(data, id) {
                                console.log(data, id)
                                Api.doPost("Headsculpture/upload_Headsculpture", { path: data.url, id: '1' }, function(res) {
                                    console.log(data.url)
                                    console.log(res)
                                        // 图片位置: http://mobile.btcnews.online/public/uploads/20200721/777d33db5f0732abc4527ceb74dd0434.jpg
                                        // 将头像的img的src改为这个地址即可
                                    let img_url = data.url;
                                    // 修改uptop的背景样式即可 给个图片背景
                                    $('.up_top').css('background', `url(http://mobile.btcnews.online/public${img_url})`)
    
                                })
                            }
                        })
    
    
                                
                    })
            })
            // 点击上传身份证图片2区域
        $('.up_down').click(function() {
                // 隐藏十字样式
                $('.down_id_pic_one, .down_id_pic_two').toggle();
                // 点击之后弹窗出来
                $('.big_box').toggle();
                // 然后是上传到top的操作
                // 点击从相册选取后再由js实现自动点击input
                $('.choose_toggleBox').click(function() {
                        // 取消
                        $('.choose_toggleBox').off('click')
                            // 自动触发事件
                        $('#choose_file_2').trigger("click");
                    })
                    // 点击拍照后再由js实现自动点击input
                $('.choose_pic').click(function() {
                    // 取消
                    $('.choose_pic').off('click')
                        // 自动触发事件
                    $('#choose_file_capture_2').trigger("click");
                })
    
                // 调取后台上传头像接口
                // 利用ajax包调取修改登录密码接口数据
                // 从相册选取图片自动触发事件
                     $('#choose_file_2').change(function()  {            
                        let  file  =  $("#choose_file_2")[0].files[0];    //选择的图片文件
                        console.log($("#choose_file_2")[0]);            
                        let  formDatas  =  new  FormData();            
                        formDatas.append('file',  file);
                        console.log(file)
                        $.ajax({
                            url: 'http://mobile.btcnews.online/index.php/api/Headsculpture/get_path',
                            type: 'post',
                            processData: false,
                            contentType: false, //"multipart/form-data"
                            data: formDatas,
                            dataType: "json",
                            success: function(data, id) {
                                console.log(data, id)
                                Api.doPost("Headsculpture/upload_Headsculpture", { path: data.url, id: '1' }, function(res) {
                                    console.log(data.url)
                                    console.log(res)
                                        // 图片位置: http://mobile.btcnews.online/public/uploads/20200721/777d33db5f0732abc4527ceb74dd0434.jpg
                                        // 将头像的img的src改为这个地址即可
                                    let img_url = data.url;
                                    // 修改uptop的背景样式即可 给个图片背景
                                    // $('.pic img').attr('src', `http://mobile.btcnews.online/public${img_url}`)
                                    $('.up_down').css('background', `url(http://mobile.btcnews.online/public${img_url})`)
                                })
                            }
                        })
                    })
                    // 从拍照选取图片自动触发事件
                         $('#choose_file_capture_2').change(function()  {            
                        let  file  =  $("#choose_file_capture_2")[0].files[0];    //选择的图片文件
                        console.log($("#choose_file_capture_2")[0]);            
                        let  formDatas  =  new  FormData();            
                        formDatas.append('file',  file);
                        console.log(file)
                        $.ajax({
                            url: 'http://mobile.btcnews.online/index.php/api/Headsculpture/get_path',
                            type: 'post',
                            processData: false,
                            contentType: false, //"multipart/form-data"
                            data: formDatas,
                            dataType: "json",
                            success: function(data, id) {
                                console.log(data, id)
                                Api.doPost("Headsculpture/upload_Headsculpture", { path: data.url, id: '1' }, function(res) {
                                    console.log(data.url)
                                    console.log(res)
                                        // 图片位置: http://mobile.btcnews.online/public/uploads/20200721/777d33db5f0732abc4527ceb74dd0434.jpg
                                        // 将头像的img的src改为这个地址即可
                                    let img_url = data.url;
                                    // 修改uptop的背景样式即可 给个图片背景
                                    $('.up_down').css('background', `url(http://mobile.btcnews.online/public${img_url})`)
    
                                })
                            }
                        })
    
    
                                
                    })
            })
            // 将上传路径转换为本地路径start
        function getUrl(input_file) {
            var src;
            var oFReader = new FileReader();
            var file = input_file;
            oFReader.readAsDataURL(file);
            oFReader.onloadend = function(oFRevent) {
                src = oFRevent.target.result;
                return src;
    
            }
        }
        $('.exit').on('click', function() {
            history.back(-1);
        })
    })
    
    展开全文
  • 学习css中得与惑

    2016-09-12 21:03:00
    这只是在实践发现问题: 一. ???h1比div还大 h1上下有边距 为什么浮动不了 (现不知道) 二. css写了 表现不出来.... 选择器问题 ?一直搞不懂选择器。 1 /*780=80 =113 33 a 31=20*/ 2 3 ....
  • OpenGL中的矩阵变换()

    千次阅读 2013-03-28 15:12:28
    呵呵,然后,既然如此,一不做二不休,在本篇中得继续乱弹一下,关于OpenGL矩阵理解。因为我实在不知道会不会在哪儿就把你忽悠+误导了(但还是期盼你信任),请看官自重哈哈。   这里有一句,我认为,最...
  • 呵呵,然后,既然如此,一不做二不休,在本篇中得继续乱弹一下,关于OpenGL矩阵理解。因为我实在不知道会不会在哪儿就把你忽悠+误导了(但还是期盼你信任),请看官自重哈哈。——ZwqXin.com这里有一句,我认为...
  • 呵呵,然后,既然如此,一不做二不休,在本篇中得继续乱弹一下,关于OpenGL矩阵理解。因为我实在不知道会不会在哪儿就把你忽悠+误导了(但还是期盼你信任),请看官自重哈哈。 这里有一句,我认为,最能够消解...
  • C#中的指针

    2016-07-20 11:46:00
    而且C#中指针与C/C++中的指针在定义有一定区别, C/c++定义 int *p1,*p2; //基于变量指针 C#定义 int* p1,p2; //基于变量指针 因为是不安全代码非托管状态,所以C#编译也所有区别 不安全代码编译...
  • Bzoj 2502: 清理雪道 有上下界网络流_最小流 好长时间没有写网络流了,感觉好手生.对于本题,设一个源点 $s$ 和 $t$.1....为了保证每条原图中得边都能被覆盖掉,再将原图中的边连一条无上界,...
  • 首先提醒一下,无论是将图片存入数据库,还是从数据库读取,都是采用流形式进行,虽然,在数据库,存储图片类型是Image,但是sql中的Image和C#中的Image不一样,就如同sql中的null判断在C#中得用DBNULL来...
  • Android遍历View几种方式

    千次阅读 2019-01-03 15:50:56
    Android经常要遍历一个容器中得所有view,并给这些view做一些业务,比如设置viewtouch监听,再比如设置view不可...首先介绍递归方式遍历容器所有view并设置touch监听,直接代码 /** * 递归遍历 * ...
  • 一篇记录了我使用 Slua.Class 来实现面向对象扩展 C# 中得类,但实际使用,更多地情况是直接在 lua 定义基类然后扩展,于是触发了我重新思考是否两种形式应该统一用一种,目前方案,有一个不好地方是...
  • 参考以上博客中得内容可以实现引用其他Module 但是实际以上方法还可以继续简化 例如有两个工程处于同一目录 ProjectA  ModuleAA  ModuleAB   ProjectB  ModuleBA   如何在ModuleBA引用...
  • 今天我们就来学习加速计使用初步。 1.代码。加速计实现很简单,只要实现代理中得唯一一个方法即可。 UIAccelerometerDelegate  代理方法是 - (void)accelerometer:(UIAccelerometer
  • ===== 2011 lecast 再开 =======   ...1. tomcat,用get方法传递中文有问题,用post没有问题。  具体为:Jquery.serialize()序列化form中得参数,并以url形式提交。  spring后台接受到中文
  • 如何制作静态库 在此博文已经写...由于本人不会使用 博文中得 截图 所以用语言概述把 在能显示UI工程(也就是.app 工程)加入 静态库工程(也就是.a 工程) 在 "Products"这个文件下面加入 静态库工程。
  • 先来讲解 什么是 tree shking 先拿生活上的例子来说 字面意思是 摇晃树枝 因为树上可能有很多死的页面 在树枝上 我们可以通过摇晃 树 来吧树上的一些 死得树叶 给摇晃下来 占个地方 却没啥用 这个意思 带到我们的...
  • windows 7 旗舰版无法在web服务器启动调试。调试失败,因为没有启用集成windows身份验证问题。...当然iis中得启用父进程之类iis设置是必须图是产生上述错误原因。 打开windows 7z程序和功能
  • 半年来尽管工作很辛苦,但同时也收获了些许成功快乐,现将工作中得与失总结如下:高中部学生入校基础成绩普遍较差,学习也很被动;教师流动性较大,作为年级主任我深知,不但要带领整个高二年级教师尊重学校...
  • 国旗讲话:礼仪3篇 礼仪是在人际交往过程中的一种重要约定俗成习惯做法,它指导人们在不同场合应该以一种习惯做法或规矩去待人接物。本周国旗讲话以礼仪为主题,*是小编为大家整理国旗讲话 ,仅供参考...
  • 记录正则表达式

    2014-09-09 16:23:54
    利用java抓取网页上的所有图片: 用两个正则表达式: 1、匹配htmlimg标签的正则:]*?> 2、匹配img标签中得srchttp路径的正则:http:\"?(.*?)(\"|>|\\s+)
  • 先下载好要安装字体,比如微软雅黑 “MSMSYHBD.TTF” , 将文件cp到容器,假设宿主机字体文件在 /tmp/MSMSYHBD.TTF , 容器字体安装到 /usr/share/fonts/msyhbd # 容器中得先将字体目录创建好 # 容器...
  • 今天给大家分享一个在linux 系统安装 redis软件方法   去redis官网(https://redis.io/)下载linux版redis文件 ... 前提:系统中得有lrzsz 安装包(作用是:提供将文件上传到linux系统中的方法)...
  • 网上找了一圈,说是把C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll加入IIS处理程序映射,试了,果然是这样。 付个操作图吧: 1.选择IIS里你要操作网站 2.双击IIS分组中得处理程序...
  • 财务自由之路

    2020-05-08 15:45:26
    但我就问你,你见到过你身边的中彩票的人了吗?有项目研究表明中得头奖的概率比雷劈到你的概率都要小,要是你觉着你有可能,靠这个实现财务自由那我不说什么了,可以划走,不需要再往看我的观点了。要是你只是一个...
  • 最近在研究了sqllite在c#中得使用偶尔有点心得跟大家一起分享: 首先,sqllite跟sqlserver基本差别不大,sqllite表面没有日志文件,而sqlserver有个log文件,当你用delete from employee得时候数据库文件并...

空空如也

空空如也

1 2 3 4 5 6
收藏数 109
精华内容 43
关键字:

上的中中得下