
loadView,viewDidLoad等几种方法的调用总结
viewDidLoad 此方法只有当view从nib文件初始化的时候才被调用。
viewDidLoad用于初始化,加载时用到的。
loadView 此方法在控制器的view为nil的时候被调用。
虽然经常说loadView是使用代码生成视图的时候,当视图第一次载入的时候调用的方法。
用于使用(写)代码来实现控件。
用于使用代码生成控件的函数。
但是经过自己实际断点单步操作发现,不管用不用nib,都最先调用loadView,所以说loadView 此方法在控制器的view为nil的时候就会被调用。
一般在使用nib后就会把loadView注释掉。
Xcode4.2创建的时候就给注释好了。
当手写代码时一定注意分配UIView.自己经常用的有两种方法,如下:- (void) loadView {UIView *view = [ [ UIView alloc] initWithFrame:[ UIScreenmainScreen] .applicationFrame] ;self.view = view;[ view release] ;}- (void) loadView {[super loadView];}但是第二种方法[super loadView]方法不被提倡,也不是苹果所希望的,就自己的几个小项目来看,就有一次使用第二种方法崩了,第一种就可以,所以还是方法一比较保险。
就是你的loadView中应该有self.view = 这样的行为。
viewDidUnload方法当系统内存吃紧的时候会调用该方法,一般在这个类中添加的代码是赋空代码,网上的解释是这样的:在该方法中释放其他与view有关的对象、其他在运行时创建(但非系统必须)的对象、在viewDidLoad中被创建的对象、缓存数据等 release对象后,将对象置为nil(IBOutlet只需要将其置为nil,系统release view时已经将其release掉了)一般认为viewDidUnload是viewDidLoad的镜像,因为当view被重新请求时,viewDidLoad还会重新被执行viewDidUnload中被release的对象必须是很容易被重新创建的对象(比如在viewDidLoad或其他方法中创建的对象),不要release用户数据或其他很难被重新创建的对象viewWillAppear:方法更新准备显示的视图的信息。
调用时,视图可能还没有被加载。
使用viewDidAppear:来触发视图完全显示在屏幕上之后的行为,例如任何动画。
这两个方法是每当切换到view时就调用。
操作系统中系统调用和一般过程的区别
所谓系统调用,就是用户在程序中调用操作系统所提供的一些子功能。
它是通过系统调用命令,中段现行程序而转去执行相应的子程序,以完成特定的系统功能。
完成后,控制又返回到发出系统调用命令之后的一条指令,被中断的程序将继续执行下去。
系统调用与一般过程调用不同,其主要区别是:1.运行的状态不同。
在程序中的过程一般或者都是用户程序,或者都是系统程序,即都是运行在同一个系统状态的(用户态或系统态)。
2.进入的方式不同。
一般的过程调用可以直接由调用过程转向被调用的过程。
而执行系统调用时,由于调用过程与被调用过程是处于不同的状态,因而不允许由调用过程直接转向被调用过程,通常是通过访问管中断(即软中断)进入,先进入操作系统,经分析后,才能转向相应的命令处理程序。
3.返回方式的不同。
4.代码层次不同。
一般过程调用中的被调用程序是用户级程序,而系统调用是操作系统中的代码程序,是系统级程序。
有什么系统或软件可以记录下你总结的一些工作经验 在遇到相似问题时可以调用出来
所谓系统调用,就是提供的、功能十分强大的一系函数。
这些系统调用是在内核现的,再通过一定的方式把系统调用给用户,一般都通过门(gate)陷入(trap)实现。
系统调用是用户程序和内核交互的接口。
整个系统调用的过程可以总结如下:1. 执行用户程序(如:fork)2. 根据glibc中的函数实现,取得系统调用号并执行int $0x80产生中断。
3. 进行地址空间的转换和堆栈的切换,执行SAVE_ALL。
(进行内核模式)4. 进行中断处理,根据系统调用表调用内核函数。
5. 执行内核函数。
6. 执行RESTORE_ALL并返回用户模式下库函数和系统调用的区别:人们在长期编程中发现使用系统调用有个重大的缺点,那就程序的移植性,比如说:linux系统提供的系统调用的函数和windows就不一样,2者不单单是实现的方式不同,提供给用户的函数名,参数都不同,这个可以理解。
因此一个实现好的程序,利用了linux的系统调用譬如说wait4函数,那么他在windows上编译是通不过的。
于是人们想了个办法,就是封装了windows和linux系统调用,给大家一个统一的函数(我习惯叫它接口),那么这样程序的移植性问题就解决了。
所以可以这么认为库函数是对系统调用的封装(不是所有的库函数都是),为的是解决一些公共的问题和提供统一的系统调用的接口,他和系统调用的优缺点就是:系统调用速度是明显要快于库函数(并不一定全部是,但绝大部分是),但系统调用缺乏移植性。
库函数速度要慢,但解决了移植问题。
这些在开发过程中要根据自己的实际情况来决定使用那一个
学习数学建模的心得体会
一年一度的全国数学建模大赛在今年的9 月22 日上午8 点拉开战幕,各队将在3 天72 小时内对一个现实中的实际问题进行模型建立,求解和分析,确定题目后,我们队三人分头行动,一人去图书馆查阅资料,一人在网上搜索相关信息,一人建立模型,通过三人的努力,在前两天中建立出两个模型并编程求解,经过艰苦的奋斗,终于在第三天完成了论文的写作,在这三天里我感触很深,现将心得体会写出,希望与大家交流。
1. 团队精神:团队精神是数学建模是否取得好成绩的最重要的因素,一队三个人要相互支持,相互鼓励。
切勿自己只管自己的一部分(数学好的只管建模,计算机好的只管编程,写作好的只管论文写作),很多时候,一个人的思考是不全面的,只有大家一起讨论才有可能把问题搞清楚,因此无论做任何板块,三个人要一起齐心才行,只靠一个人的力量,要在三天之内写出一篇高水平的文章几乎是不可能的。
2. 有影响力的leader:在比赛中,leader 是很重要的,他的作用就相当与计算机中的CPU,是全队的核心,如果一个队的leader 不得力,往往影响一个队的正常发挥,就拿选题来说,有人想做A 题,有人想做B 题,如果争论一天都未确定方案的话,可能就没有足够时间完成一篇论文了,又比如,当队中有人信心动摇时(特别是第三天,人可能已经心力交瘁了),leader 应发挥其作用,让整个队伍重整信心,否则可能导致队伍的前功尽弃。
3. 合理的时间安排:做任何事情,合理的时间安排非常重要,建模也是一样,事先要做好一个规划,建模一共分十个板块(摘要,问题提出,模型假设,问题分析,模型假设,模型建立,模型求解,结果分析,模型的评价与推广,参考文献,附录)。
你每天要做完哪几个板块事先要确定好,这样做才会使自己游刃有余,保证在规定时间内完成论文,以避免由于时间上的不妥,以致于最后无法完成论文。
4. 正确的论文格式:论文属于科学性的文章,它有严格的书写格式规范,因此一篇好的论文一定要有正确的格式,就拿摘要来说吧,它要包括6 要素(问题,方法,模型,算法,结论,特色),它是一篇论文的概括,摘要的好坏将决定你的论文是否吸引评委的目光,但听阅卷老师说,这次有些论文的摘要里出现了大量的图表和程序,这都是不符合论文格式的,这种论文也不会取得好成绩,因此我们写论文时要端正态度,注意书写格式。
5. 论文的写作:我个人认为论文的写作是至关重要的,其实大家最后的模型和结果都差不多,为什么有些队可以送全国,有些队可以拿省奖,而有些队却什么都拿不到,这关键在于论文的写作上面。
一篇好的论文首先读上去便使人感到逻辑清晰,有条例性,能打动评委;其次,论文在语言上的表述也很重要,要注意用词的准确性;另外,一篇好的论文应有闪光点,有自己的特色,有自己的想法和思考在里面,总之,论文写作的好坏将直接影响到成绩的优劣。
6. 算法的设计:算法的设计的好坏将直接影响运算速度的快慢,建议大家多用数学软件(Mathematice,Matlab,Maple, Mathcad,Lindo,Lingo,SAS 等),这里提供十种数学建模常用算法,仅供参考:1、 蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法)2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab 作为工具)3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo 软件实现)4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备)5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中)6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用)7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具)8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的)9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用)10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用Matlab 进行处理)以上便是我这次参加这次数学建模竞赛的一点心得体会,只当贻笑大方,不过就数学建模本身而言,它是魅力无穷的,它能够锻炼和考查一个人的综合素质,也希望广大同学能够积极参与到这项活动当中来。
Java学习心得
学习感想——思路决定出路人的学习是无止境的,只有不断的学习,才能给自己更丰富,更开阔的思路,经过两天的学习,让我感悟到很多事情,都是有两面性的,穷则变,变则通,出路在于变通,当目前的想法不能成功,说明你的想法有可能是错的,或者是由于没有改变自己的思路或者是懒于改变自己的思路或者是根本不想改变自己的思路,成功总有方法,想成功就要找方法,而思考是一切正确策略和方法的起源,思考其实就是问与答的过程,当你做一件事情没有达到目标时,问自己一个为什么
问自己问题出在了哪里,然后自己给出答案,学会反思学会换位思考。
“没有不好的孩子,只有不好的教育”,例如,在课堂中,在一日生活中孩子没有如我们所预想的那样做一些正确的事情,不能达到我们所要求的目标时,我们只能对孩子着急吗
与其对孩子发脾气,不如改变自己的教育观点理念,反思自己为什么,不能懒于改变自己的思路,就要求别人去适应自己的思路,我们何不反思自己从事情的另一个角度开始着手,可能会有意外收获,就像我们经常说的,给孩子机会孩子就会给你惊喜。
从中,我还深刻的理解到一个道理,大凡世界上能做大事的人,都能把小事做细,做好,做好了每件小事逐渐积累就会发生质变,小事就会变成大事,任何一件小事只要你把它做规范了,做到位了,做透了,你就会从中发现机会,找到规律,从而成就大事,也就是说,一件事情我会做了,但做好了吗,做精了吗,一个人无论从事何种职业,都应该尽心尽责
操作系统设计报告总结
Excel课程心得Excel的功能很强大。
我刚使用Excel候,那时觉得并没么出奇的地方,仅仅是一个成绩统计的工具,排排名次、算算平均分。
工作几年发现excel的功能不是一般的强大,可平常应用还是仅限于简单的成绩统计,而没有进一步深入系统的学习,想想还是自己比较懒惰。
如果能够学会excel,基本上很多其他的数据处理软件都不需要了。
很高兴有了这样一个学习的机会,通过学习也确实掌握了不少原来不会的实际应用。
通过这次的学习,来盘点一下我的收获:1、对学生分数分析的总计扫尾各分数段学生人数的统计、着色显示、60分以下学生分数重点如红色显示等等。
来展示一下:60分以下的,就是不及格人数,这里用countif()函数。
在学生的成绩统计表中在相应单元格中单元格输入,如:=countif(c3:c12,<=60)”,回车,不及格人数已经算好了。
求“60~ 70”分段的人数,这里不能再用countif()函数了,不过可以用SUM()函数,直接在单元格中输入:=sum(if(c3:c12>=60,if(c3:c12<70,1,0))),记住这里不能回车, 如果你直接回车的话,你不能看到确切的人数,而只能看到“#VALUE!”,因为上面输入的函数是一个数组函数,输入后你必须将光标定位到公式栏,然后再按住“Ctrl+Shift”回车,公式的两边会自动添加大括号,而正确人数也将会出现在单元格中,这一分段的别的科目同样一拖即可。
“70~80”“80~90”公式同样,只是记得修改范围。
至于90分以上的人数,用countif()函数还是用SUM()函数均可。
剩下就一个平均分了,这次用的是AVERAGE()函数,很简单了,直接输入:AVERAGE(c3:c12)就行,然后一拖,一切OK了。
使用这种方法不但速度快,结果准确,而且一个突出的优点就的这是一个动态的表格,一次输好之后,你就可以高枕无忧了,即使有人的成绩错了,想改变你也不用担心上面的心血白费,上面的结果会随你数据的变化而动态改变。
因此你完全可以将它保存为一个模版,以后再要用的时候只要调用一下这个表格,修改一下相关的成绩既可以马上搞定。
2、如何在数据单元格中进行换行
在单元格内录入文字内容进行换行操作时,如果使用用传统的Enter键进行换行操作时会发现,当前单元格内的内容并没有换行,而是选中了同列的下一行单元格。
所以在这里的操作会有和通常操作不太一样的地方,具体操作是,当某个单元格内录入完内容后需要进行换行操作时,同时按下键盘的“Alt”和“Enter”键。
这时大家就发现鼠标的光标乖乖地换到了上一行文字的下方也就达到了文字换行的效果了。
3、如何使Excel中数字计算自动四舍五入 要对一个单元格中的数据(利用函数计算得出的)在它本身所在的单元格内进行四舍五入。
\\\/\\\/1.如果B1单元此后不再加入其他运算,只要: 右键单击B1 → 设置单元格格式 → 小数位数调整到2位.或者单击B1,选择快捷菜单上的 ”千分格式” ,再选择快捷菜单上的 ”退一位小数位” 即可。
2.如果B1单元此后还要再加入其他运算,只要: 在B1单元,将原有内容加入ROUND函数即可:=round(if(A1$#@62;5,6234*.05),2) 其中,最后一位数”2”代表你想要数据参与计算的结果截止到小数点后两位,如果想要三位,直接改成”3”即可。
以上第一种方法只能达到显示上的四舍五入,当数据再次参与计算时,将不会以四舍五入后的数值参与。
第二种方法,当数据再次参与计算时,将以四舍五入后的数值(即其显示在单元格中的数据)参与计算。
我的学习还在进行中,希望能对Excel有更多的了解、应用。
以后会多多应用,以期对学生的学习状况有更直观、更客观的评价。



