首页 文章 精选 留言 我的

精选列表

搜索[MoE动态路由],共10000篇文章
优秀的个人博客,低调大师

Objective-C 处理动态类型的方法

方法 问题或行为 -(BOOL) isKindOfClass : class-object 对象是不是class-object或其子类的成员 -(BOOL) isMemberOfClass:class-object 对象是不是class-object的成员 -(BOOL) respondsToSelector:Selector 对象是否能够响应selector所指定的方法 -(BOOL) instancesRespondToSelector 指定的类实例是否能响应selector -(BOOL) isSubclassOfClass:class-object 对象是否是指定类的子类 -(id) performSelector:selector 应用selector指定的方法 -(id) performSelector:selector withObject:object 应用selector指定的方法 -(id) performSelector:selector withObject:object1 withObject : object2 应用selector指定的方法 测试实验设计 继承关系图: Rectangle.h Square.h 在main.h中的测试如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 // //main.m //Square // //CreatedbyAppleon2017/9/9. //Copyright2017年Apple.Allrightsreserved. // #import<Foundation/Foundation.h> #import"Square.h" int main( int argc, const char *argv[]){ @autoreleasepool{ Square*mySquare=[[Squarealloc]init]; //isMemberof if ([mySquareisMemberOfClass:[Square class ]]==YES) { NSLog(@ "mySquareisamemberofSquareclass" ); // } if ([mySquareisMemberOfClass:[Rectangle class ]]==YES) { NSLog(@ "mySquareissmemberofRectamgleclass" ); } if ([mySquareisMemberOfClass:[NSObject class ]]==YES) { NSLog(@ "mySquareisamemberofNSObjectclass" ); } //isKindOf if ([mySquareisKindOfClass:[Square class ]]==YES) { NSLog(@ "mySquareisakindofSquareclass" ); // } if ([mySquareisKindOfClass:[Rectangle class ]]==YES) { NSLog(@ "mySquareisskindofRectamgleclass" ); } if ([mySquareisKindOfClass:[NSObject class ]]==YES) { NSLog(@ "mySquareisakindofNSObjectclass" ); // } //respondsTo: if ([mySquarerespondsToSelector:@selector(setSide:)]==YES) { NSLog(@ "mySquarerespondstosetSide:method" ); } if ([mySquarerespondsToSelector:@selector(setWidth:addHeight:)]==YES) { NSLog(@ "mySquarerespondstosetWidth:addHeight:method" ); } if ([SquarerespondsToSelector:@selector(alloc)]==YES) { NSLog(@ "Squareclassrespondstoallocmethod" ); } //instancesRespondTo: if ([RectangleinstancesRespondToSelector:@selector(setSide:)]==YES) { NSLog(@ "InstancesofrespondtosetSide:method" ); } if ([SquareinstancesRespondToSelector:@selector(setWidth:addHeight:)]==YES) { NSLog(@ "InstancesofSquarerespondtosetWidth:addHeight::method" ); } if ([SquareisSubclassOfClass:[Rectangle class ]]==YES) { NSLog(@ "Squareisasubclassofarectangle" ); } return 0; } } 本文转自Aonaufly51CTO博客,原文链接:http://blog.51cto.com/aonaufly/1963970,如需转载请自行联系原作者

优秀的个人博客,低调大师

听商业领袖揭秘大数据新动态

2016年中国第二届大数据产业峰会在贵阳召开。本次大会云集了全球知名企业大佬、大数据领军人物、专家学者等20000多位国内外来宾。下面我们来看看这些大佬们在会上都说了些什么?本文根据嘉宾演讲内容整理。 世界加速,进入一个完全互联互通的状态。 希望帮助中国进一步发展数字经济与数据中心 高通公司全球总裁德里克·阿博利 现在中国在全球互联网中扮演越来越重要的作用。我们希望能够帮助中国进一步发展自己的数字经济,我们将会与中国的合作伙伴一起合作,包括发展信息经济和数据中心。现在数据是海量的,而且数据服务越来越广泛,我们正在考虑如何更加有效的利用数据,包括如何更好地建设好数据中心。现在全球各地的数据量迅速发展,实际上全球90%的数据量都是在过去两年中产生的。我们知道现在这个数据量是非常发展的,而且是呈幂指数地发展,现在每分钟交流数据量都是海量的。 现在有一些智能电视、无人机,甚至一些家电以及其他的基础设施都在连上互联网成为物联网的一部分,而这部分产业也越来越成为这个国家的重要内容,这也会进一步催生数据中心以及数据运营商的发展,各种硬件、软件以及数据中心的基础设施也需要进一步创新发展来适应新时代的新要求,我们必须要找到新的方式使得数据中心可以更加高效、顺利的发展。现在我们的经济都是细分市场的,人们有不同的需求,我们也需要通过数据中心向人们提供不同的产品服务,我们也需要不断创新才能紧跟时代步伐。 ——德里克·阿博利(高通公司全球总裁) 世界加速,我们将进入完全互联互通的状态 戴尔公司全球总裁迈克尔·戴尔 我们的处理能力,带宽、存储正以每年10倍速度在增长,未来15年我们的技术将会比现在更强大1000倍,今天解破一个人类基因组大概需要26个小时,到2031年只需要94秒,成本不到1美元。每一个新生儿在医院都将有一套完整的DNA电子数据以及贯穿其一身的个性化医疗,而电脑的处理能力将超过人脑,成本将不到1美元,一半以上的汽车将会是无人驾驶的,而且还会有数十万我们意想不到的发明出现。 现在进步步伐在不断加快,而相互连通的设备和结点会发展更快,因为智能设备的成本现在越来越低,我们从物联网,能源、电力、汽车、家庭自动化、工厂、机器照明等发展到了万物互联,包括视频农业,管道,医疗设备,服装、列车、零件等,到2030年相互连通的设备数量将会从80亿增长到2000亿甚至更多,这些新的设备和结点将创造大量新的信息来源,实时的利用这些信息,以创造更好的愿景和更好的世界,这就是我们这一代人所面临的挑战,也是一个机遇。随着世界加速,进入一个完全互联互通的状态,我们的挑战和机遇都将是全球性的,在实现共同数据化的未来的过程当中,中国也将发挥关键的作用。 ——迈克尔·戴尔(戴尔公司全球总裁) 希望开放腾讯海量数据的运营经验 腾讯公司董事会主席兼首席执行官马化腾 腾讯能够在多年海量的运营中积累的经验,我们希望能够开放出来,能够贡献给整个生态的合作伙伴。腾讯最近三年整个战略变化,我们从什么业务都自己做转化为只做最核心的平台和数字内容,以及金融的业务,我们对外说就是两个半的平台,其他的业务我们全部交给合作伙伴,像大数据和未来的这些生态里面我们决定做哪些基础要素呢?第一个是云,第二个是移动支付,第三个是地理位置信息技术以及安全,我想这些基础设施是我们能够和周边生态合作伙伴,也就是朋友圈的这些合作伙伴一起来共建。 最后介绍一下腾讯在云方面的一些规划,我们是提供一个基数据中心,中间我们有各种产品,结合很多特色,最终服务上游的各个产业中的解决方案。我们希望未来能够和合作伙伴一起,腾讯定位很清晰,我们就只做连接,我们希望能够和大家共建整个大数据的生态。 ——马化腾(腾讯公司董事会主席兼首席执行官) 希望首个只允许无人车行驶的城市出现在中国 百度公司创始人、董事长兼首席执行官李彦宏 最近几年人工智能为什么这么火?最主要的一个原因就是因为大数据,所以我说人工智能是和我们今天的大数据话题非常相关的。每天越来越多数据的产生导致了我们可以利用这些数据来做一些过去只有人能够做的事情。当然,除了数据的丰富度之外,还有一个非常非常重要的原因,就是计算资源的丰富,或者说计算能力越来越强大,而计算的成本越来越低廉。因为有了好的计算能力,便宜的计算能力,也因为有了大数据,我们现在可以实现很多,比如说像语音识别,自然语言的理解,图象识别,甚至无人驾驶汽车,当然无人驾驶汽车还在研发当中。 无人车是一个典型的人工智能的应用,就是它用一台电脑加上轮子来实现司机所能做的事情,能够看得明白,能够听得到,能够理解,并且能够处理大数据。一台无人车一天可能要处理十几个T的数据,这是很庞大的,它的意义甚至超出了互联网,因为无人车的行驶很可能是不需要互联网的,或者说至少我们不能依赖互联网,你总有一些信号不好的地方,万一联不上网它就不走了。所以无人车的例子可以告诉大家人工智能可以做的事情非常多,也许我们的下一波的产业技术革命不仅仅是建立在大数据的基础上,更多的会是建立在人工智能基础上。 ——李彦宏(百度公司创始人、董事长兼首席执行官) 利用大数据解决安全问题已经刻不容缓 奇虎360科技有限公司总裁齐向东 第一大数据也是双刃剑,可以造福社会和人民,同时如果被一些人利用它同样可以损害社会利益和公众利益。要实现自动驾驶就需要把大数据源源不断从端传到云,再通过云指挥端,这个过程当中如果被网络劫持数据,那么这个无人机和自动驾驶汽车将遭到破解,而且它控制方向将失去主人的意味。 第二传统安全思路已经没有办法解决大数据安全问题。传统解决网络安全的方法就是划分边界,我们把内网和外网隔离开,用终端设备来隔离风险,用网络守住边界解决安全问题,但是随着移动互联网,云技术的出现,移动终端在4G,WiFi和有限电缆当中穿梭,网络边界已经消失了,我们每天发现的软硬件和网站漏洞超过120个,每一个木马,每一个漏洞都可能攻击我们预先布署的安全设备和安全软件。去年12月31号乌克兰电力公司网络遭到攻击,造成有史以来第一次因网络攻击导致停电的事故,今年3月叙利亚黑客组织通过网络攻击控制了水厂化学品配方,导致这个水厂停止供水,如果一旦没有发现这样的攻击出现,那么我们喝的水有可能是毒水。 第三要用大数据方法解决大数据安全难题。现在黑客想进入我们的系统已经不是难题了,但是他们进入网络之后一定要寻找他们认为有价值的数据,在他们找到数据,拿走数据之前能及时发现就能切断攻击,找到源头,举一反三。一个人可以把声音、指纹伪装起来,但是没有办法伪装行为,这就是数据,所以数据能看穿一切,也能说明一切网络上任何访问行为都会留下痕迹,一个黑客在互联网上的行为和正常员工网络访问行为不一样,利用大数据就能够发现是否被攻击了,被谁攻击了,攻击者对我们什么样的数据比较关心,应该采取什么样的措施掐断这种攻击,这种方法就叫数据驱动安全思维下的全新安全体系,这套新安全体系包括漏洞挖掘技术,网络攻击技术,网络样本分析技术,以及网络地址解析数据库,网络访问数据库等等,由各种大数据组成的庞大的大数据体系和大数据技术,是传统互联网+大数据。 ——齐向东(奇虎360科技有限公司总裁) 希望未来社会大家共同分享一辆汽车按照使用付费 滴滴出行创始人程维 互联网+交通,所有交通工具都被互联网连接到了线上,专车、快车、顺风车、代驾巴士缓解了打车难、出行难,缓解了拥堵和污染。原来我们在大城市打车和坐公交都不方便,所以只要有能力就一定要买一辆车,发展了十几年中国已经有非常多的汽车。虽然中国整体机动车的拥有比例只有美国的三分之一,但是所有城市已经拥堵不堪,这是因为中国的人口密度和原来路网建设基础的薄弱。中国不可能走美国的老路,汽车总量再翻三倍人人都买车,所有的大城市都开始限制、摇号、拍卖、限购、限行,但是出行是刚需,正因为这些交通领域的瓶颈,所以开始酝酿分享经济,我们相信未来社会并不需要每个人都买一辆汽车,而是大家共同分享一辆汽车,大家按照使用付费,汽车总量不变的情况下才能够支持更多人的出行。 ——程维(滴滴出行创始人) 希望大数据能极大提升中国零售业效率 京东集团首席执行官刘强东 我谈谈大数据和电商的结合能够为这个社会创造什么价值,首先我相信大数据将来能够对整个中国的零售消费品行业带来极大的效率提升。今天整个中国每天在社会上有十几万亿的库存金额,这么庞大的社会库存金额永远产生不了任何价值,它只会产生巨额社会成本,所以我坚信有一天通过大数据在电商领域一定能够消费没有价值的库存,真正实现社会零库存,这是第一。第二,未来5—10年时间这种购置环境会再次发生改变,因为新技术的应用,很多商品本身可能都是一个购物终端。比如汽车,我相信有一天当某一个汽车配件磨损你还不知道的时候其实已经下订单了,我们已经给你送过去了,你直接换就行了。如果不幸发生了事故,在事故发生的第一秒时间你的订单已经生成,因为已经知道这次碰撞知道哪些零部件损害需要维修。 随着数据技术的不断进步,我相信有一天我们这种购物中心平台可能会面临比较大的压力,因为很多商品并不需要电商平台进行销售,商品就是一个销售界面和管道,但是不管界面怎么发展,有一件事情永远不可改变,那就是物流服务总是会被需要。 本文转自d1net(转载)

优秀的个人博客,低调大师

一句SQL完成动态分级查询

在最近的活字格项目中使用ActiveReports报表设计器设计一个报表模板时,遇到一个多级分类的难题:需要将某个部门所有销售及下属部门的销售金额汇总,因为下属级别的层次不确定,所以靠拼接子查询的方式显然是不能满足要求,经过一番实验,利用了CTE(Common Table Expression)很轻松解决了这个问题! 举例:有如下的部门表 以及员工表 如果想查询所有西北区的员工(包含西北、西安、兰州),如下图所示: 如何用CTE的方式实现呢? Talk is cheap. Show me the code --以下代码使用SQLite3.18.0测试通过WITH [depts]([dept_id])AS(SELECT[d].[dept_id] FROM[dept][d] JOIN[employees][e]ON[d].[dept_id]=[e].[dept_id] WHERE[e].[emp_name]='西北-经理' UNIONALL SELECT[d].[dept_id] FROM[dept][d] JOIN[depts][s]ON[d].[parent_id]=[s].[dept_id] )SELECT*FROM[employees]WHERE[dept_id]IN(SELECT[dept_id] FROM[depts]); 可能有些同学对CTE(Common Table Expression)还不太熟悉,这里简单说一下,有兴趣的同学可以google或者百度,介绍很多(这里以SQLite举例): 我还是更喜欢称CTE(Common Table Expression)为“公用表变量”而不是“公用表达式”,因为从行为和使用场景上讲,CTE更多的时候是产生(分迭代或者不迭代)结果集,供其后的语句使用(查询、插入、删除或更新),如上述的例子就是一个典型的利用迭代遍历树形结构数据。 CTE的优点: 递归的特点使得原本需要使用临时表、存储过程才能完成的逻辑,通过SQL就可以完成,尤其针对一些树或者是图的数据模型 因为是会话内的临时结果集,不需要去显示的声明或销毁 改写后的SQL语句可读性提高(看的明白才能修改) 给数据库引擎优化执行计划的可能性(这个不是肯定的,需要根据具体CTE的实现有关),优化了执行计划,自然地性能就能上升 为了更好的说明CTE的能力,这里附上两个例子(转自SQLite官网文档) 曼德勃罗集合(Mandelbrot set) --以下代码使用SQLite3.18.0测试通过WITHRECURSIVE xaxis(x)AS(VALUES(-2.0)UNIONALLSELECTx+0.05FROMxaxisWHEREx<1.2), yaxis(y)AS(VALUES(-1.0)UNIONALLSELECTy+0.1FROMyaxisWHEREy<1.0), m(iter,cx,cy,x,y)AS(SELECT0,x,y,0.0,0.0FROMxaxis,yaxisUNIONALL SELECTiter+1,cx,cy,x*x-y*y+cx,2.0*x*y+cyFROMm WHERE(x*x+y*y)<4.0ANDiter<28 ), m2(iter,cx,cy)AS(SELECTmax(iter),cx,cyFROMmGROUPBYcx,cy ), a(t)AS(SELECTgroup_concat(substr('.+*#',1+min(iter/7,4),1),'') FROMm2GROUPBYcy )SELECTgroup_concat(rtrim(t),x'0a')FROMa; 运行后的结果,如下图:(使用SQLite Expert Personal 4.2 x64) 数独问题(Sudoku) 假设有类似下图的问题: --以下代码使用SQLite3.18.0测试通过WITHRECURSIVE input(sud)AS(VALUES('53..7....6..195....98....6.8...6...34..8.3..17...2...6.6....28....419..5....8..79') ), digits(z,lp)AS(VALUES('1',1)UNIONALLSELECT CAST(lp+1ASTEXT),lp+1FROMdigitsWHERElp<9 ), x(s,ind)AS(SELECTsud,instr(sud,'.')FROMinputUNIONALL SELECT substr(s,1,ind-1)||z||substr(s,ind+1), instr(substr(s,1,ind-1)||z||substr(s,ind+1),'.')FROMx,digitsASzWHEREind>0 ANDNOTEXISTS(SELECT1 FROMdigitsASlpWHEREz.z=substr(s,((ind-1)/9)*9+lp,1)ORz.z=substr(s,((ind-1)%9)+(lp-1)*9+1,1)ORz.z=substr(s,(((ind-1)/3)%3)*3 +((ind-1)/27)*27+lp+((lp-1)/3)*6,1) ) )SELECTsFROMxWHEREind=0; 执行结果(结果中的数字就是对应格子中的答案) 附:SQLite中CTE(WITH关键字)语法图解: WITH cte-table-name Select-stmt: 总结 CTE是解决一些特定问题的利器,但了解和正确的使用是前提,在决定将已有的一些SQL重构为CTE之前,确保对已有语句有清晰的理解以及对CTE足够的学习!Good Luck~~~ 附件:用到的SQL脚本

优秀的个人博客,低调大师

【产品动态】云存储3月月刊

存储头条 低频存储OSS IA全新上线 文件存储容量型NAS正式发布 容量型NAS是对性能型NAS的补充,满足低成本大容量的企业文件存储场景。 参考链接:https://www.aliyun.com/price/product?#/nas/detail 产品更新 对象存储 【新产品】低频存储OSS IA全新上线 OSS支持新的存储类型,适用于访问频度较少、长期(30天以上)的数据存储,享受更低成本。 参考链接:https://m.aliyun.com/markets/aliyun/act/ossia 文件存储 1.【新产品】文件存储容量型NAS正式发布 容量型NAS是对性能型NAS的补充,满足低成本大容量的企业文件存储场景。单文件系统最大容量支持10PB,单价0.3~0.55元/GB/月,性能和容量线性相关,最大支持2GBps的吞吐能力。相比AWS

优秀的个人博客,低调大师

【产品动态】云存储2月月刊

存储头条 ------------------------------------------------------- 全SSD高性能型NAS上海Region对外开服 产品更新 ------------------------------------------------------- 【对象存储】 1. 【功能优化】 OSS控制台上传文件大小限制从500MB提升到5GB 登录OSS控制台:https://oss.console.aliyun.com/index#/ 2. 【功能优化】OSS PHP SDK全面支持PHP 7.0版本,使用PHP7.0 开发的用户可以使用OSS PHP SDK了 1.18 详情参考:https://github.com/aliyun/aliyun-oss-php-sdk/releases

优秀的个人博客,低调大师

【产品动态】云存储1月月刊

存储头条 ------------------------------------------------------------------------------------------------------- 1. 消息服务在香港数据中心正式对外开服 立即开通:https://mns.console.aliyun.com/ 2. 阿里云文件存储和自我管理的云解决方案的TCO比较 查看详情:https://yq.aliyun.com/articles/67104 产品更新 ------------------------------------------------------------------------------------------------------- 【对象存储】 1. OSS IOS 2.6

优秀的个人博客,低调大师

【产品动态】云存储12月月刊

存储头条 ------------------------------------------------------------------------------------------------------- 【海外区域开服】 对象存储、消息服务在德国法兰克福、澳洲悉尼、中东迪拜三个区域正式对外开服。 【E-MapReduce 全面支持OSS为默认存储】 OSS作为默认的存储,Hadoop、Spark可以作为计算引擎直接分析OSS存储的数据,实现存储与计算分离。查看详情> 【OSS支持消息服务事件通知机制】 您可以通过在MNS上创建事件通知的规则,来关注其他阿里云产品指定资源上产生的事件,并且由MNS以消息的方式主动推送到指定的接收端。查看详情> 产品更新 -------------------

优秀的个人博客,低调大师

【产品动态】云存储11月月刊

存储头条 ------------------------------------------------------------------------------------------------------- 【双十一暖心福利】 对象存储企业认证用户2T一年99元返99元券,个人认证用户100G一年9元返9元券,表格存储5元IOT套餐,为您数据上云降成本!领取福利> 【文件存储开放购买】 文件存储服务NAS正式商业化,杭州/北京区域开放购买。标准文件访问协议、无限容量及性能扩展、单一命名空间、多共享等特性满足您的云上文件存储需求。 立刻查看> 【表格存储容量型实例上线】 表格存储国内节点(杭州、北京、上海、深圳)全线支持容量型实例 表格存储国内节点杭州、北京、上海支持容量型实例,更低的使用成本提供更好的NoSQL数据存 本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册