- 浏览: 272410 次
- 性别:
- 来自: 济南
-
文章分类
最新评论
-
hyxj1220:
原来是这么回事,,谢谢了
document的execCommand解释 -
zouhongmin:
太强了,我膜拜你,要向你学习。
减肥日志 -
codeboy_wang:
超炫 超喜欢
document的execCommand解释 -
laiang8283:
博主男的女的,100斤也不是很胖啊
减肥日志 -
yixiaof:
博主真有毅力啊。
减肥日志
1.@class用在循环嵌入#import时很有用,当A类引用了B类,而B类也引用了A类时用#import会报错,这时用@class,
@class相当于告诉编译器肯定会有一个这样的类。
3.Foundation包里有基础类:NSString ,NSMutableString,NSArray,NSMutableArray,NSEnumerator(数组枚举可以遍历访问数组元素),NSDictionary(字典用来保存大量数据并且可以快速找到),NSMutableDictionary,NSNumber
其中数组是以nil来结尾的,所以NSArray可以存储除了nil以外的任意类型对象。
遍历目录下的后缀.jpg的文件名
NSFileManager * manager;
manager = [ NSFileManger defaultManager];
NSString * home;
home = [@"~" stringByExpandintTiledInPath];
NSDirectoryEnumerator * direnum;
direnum = [manager enumeratorAtPath:home];
NSMultableArray * files;
files = [NSMutableArray arryWithCapacity:47];
NSString * fileName;
while(fileName = [direnum nextObject]{
if([[fileName pathExtension] isEqualTo:@"jpg"])
{
[files addObject:fileName];
}
}
NSEnumerator * fileenum;
fileenum = [fils objectEnumerator];
while(fileName = [filenum nextObject])
{
NSLog(@"%@",fileName);
}
4.内存管理 --- 引用计数对象调用retain方法则计数加一,调用release方法则计数减一。
关键是什么时候释放,什么时候加一,记住在把新对象赋值,在释放旧对象前先给新对象retain加一比较保险.
原则是谁创建,谁释放。
objective-C内存管理
1)当使用new,alloc,或cop创建对象时,对象的count retain到1,则一定要负责把这个对象release或autorelease掉,这样当它的生命周期结束时,才能清空。
2)当你调用方法获得一个对象时, 你可以认为已经retain了一个count,并且autolease掉,你不用考虑和它相关的清理问题,但是如果你想保留着个对象,就需要retian
,并且确保之后你release了这个对象。
3)如果你retain一个对象,则最终是需要releas或者autolease它。
4)需要销毁对象的时候,不直接调用dealloc,而是调用release,
5) 新生成的对象,只要调用autorelease就行了,无需再调用release!
6)除了alloc,new 或copy之外的方法创建的对象都被声明了autolease.
7)内存标准使用:
* 创建对象:
ClassA * obj1 = [[ClassA alloc]init];
*创建一个autoRelease对象
ClassA * obj1 = [[[ClassA alloc]inin]autoRelease];
*Release一个对象后,必须立即把指针清空
[obj1 release];
obj1 = nil;
*指针赋值给另一个指针。
ClassA * obj2 = obj1;
[obj2 retain];
//do sometin
[obj2 releas];
obj2 = nil;
*在一个函数中创建并返回对象,需要把这个对象设置为iautorelease
ClassA *Func1()
{
ClassA *obj = [[[ClassA alloc]init]autorelease];
return obj;
}
2012-8-5 object-c语法再整理
1)classes基本定义
@interface
- 繼承(inheritance)以 Class: Parent 表示,就像上面的 Fraction: NSObject。
- 夾在 @interface Class: Parent { .... } 中的稱為 instance variables。
- 沒有設定存取權限(protected, public, private)時,預設的存取權限為 protected。設定權限的方式將在稍後說明。
- Instance methods 跟在成員變數(即 instance variables)後。格式為:scope (returnType) methodName: (parameter1Type) parameter1Name;
- scope 有class 或 instance 兩種。instance methods 以 - 開頭,class level methods 以 + 開頭。
- Interface 以一個 @end 作為結束。
@implementation
-
Implementation 以 @implementation ClassName 開始,以 @end 結束
- Fraction *frac = [[Fraction alloc] init];
- 在 Objective-C 中调用methods 的方法是 [object method],就像 C++ 的 object->method()。
- Objective-C 沒有 value 型別。所以沒有像 C++ 的 Fraction frac; frac.print(); 這類的東西。在 Objective-C 中完全使用指针來處理对象。
- 這行程式碼實際上做了兩件事: [Fraction alloc] 呼叫了 Fraction class 的 alloc method。這就像 malloc 記憶體,這個動作也做了一樣的事情。
- [object init] 是一個构造(constructor)方法,負責初始化物件中的所有变量。它调用[Fraction alloc] 傳回的 instance 上的 init method。這個動作非常普遍,所以通常以一行程式完成:Object *var = [[Object alloc] init];
- [frac setNumerator: 1] 非常簡單。它呼叫了 frac 上的 setNumerator method 並傳入 1 為參數。
- 如同每個 C 的变量,Objective-C 也有一個用以釋放内存的方式: release。它繼承自 NSObject,這個 method 在之後會有詳盡的解說。
- Fraction *frac = [[Fraction alloc] init];
2)多重参数
声明和定义 -(void)setNumertor:(int)numertor andDenominator:(int)denomintao
调用 [frac setNumertor:1 andDenominator:2];
- 這個 method 實際上叫做 setNumerator:andDenominator:
- 加入其他參數的方法就跟加入第二個時一樣,即 method:label1:label2:label3: ,而呼叫的方法是 [obj method: param1 label1: param2 label2: param3 label3: param4]
- Labels 是非必要的,所以可以有一個像這樣的 method:method:::,簡單的省略 label 名稱,但以 : 區隔參數。並不建議這樣使用。
3)构造函数-(id)init
Objective-C 中的建構子就是一個 "init" method,
4)異常情況(Exceptions)
- 异常派生与NSException 例如:@interface CupWaring:NSException
- 函数定义时,自定义异常对象生成并抛出 NSException * e = [CupWaring exceptionWithName:@"" reason:@"" userInfo:nil]; @ throw e;
- 函数调用时捕获异常 @try{ [obj fun]} @catch(CupWaring *e){}
5)id 型別 Objective-C 有種叫做 id 的类型,它的運作有時候像是 void*,不過它卻嚴格規定只能用在对象。
6)类型识别
7)Objective-C 裡的 Protocol 與 Java 的 interface 或是 C++ 的 purely virtual class 相同。
发表评论
-
2013学习
2013-02-18 17:23 9362013-2-18 http://developer.a ... -
xcode下控制台中文乱码
2013-01-08 12:20 3049http://blog.csdn.net/ydj213/art ... -
cocos2d game +ios5 之蜘蛛
2012-10-12 11:04 1151http://tobia.github.com/CrossSl ... -
Box2d基本知识
2012-08-31 17:39 640http://www.ohcoder.com/post/201 ... -
转objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
2012-08-08 11:22 873http://map.baidu.com/?qt=inf&am ... -
cocos2d游戏开发思路
2012-06-29 16:44 02012-6-29 游戏level的实现有2种思路一种 ... -
下载列表
2012-06-20 09:53 637写进去心里的那些话----- 当被别人忽略、冷落的时 ... -
cocos2d game +ios5
2012-06-19 16:41 1496http://bsr1983.iteye.com/blog/1 ... -
[转载]转载 【IOS】Object-C 中的Selector 概念 (2012-01-10 16:37:55)
2012-06-19 16:01 754原文地址:转载 【IOS】Object-C 中的Sel ... -
xcode4.3秘笈
2012-05-22 11:35 5991.It's just slightly different ... -
ios面试题收集
2012-04-09 14:43 2461objective-c学习网页 ht ... -
CCScene,CCLayer,CCSprite,CCNode
2012-04-05 16:22 879http://blog.csdn.net/porsch ... -
objective-c多参数解析和@class声明的作用
2012-03-30 09:37 2387Objective-C 多参数成员函数 ... -
cocos2d做游戏之一入门
2012-03-28 10:37 1539有的时候发现做一件事 ... -
xcode4.2下创建MainWindow
2012-03-28 09:41 9761、创建Empty Application工程;注意创建时的C ... -
iphone下的导航视图
2012-03-19 16:05 1382UINavigationController的特点 ... -
iphone下的多视图 --xcode3.1实现
2012-03-16 11:27 1814苹果电脑os是Mac os 而ipon ... -
一个view两个tableview
2012-03-14 09:59 6660http://www.trappers.tk/site/201 ... -
xcode4.2里自定义viewController和view切换
2012-03-03 22:59 26641)添加自定义 viewController 在新版的v ... -
iphone中的触摸手势判断,滑动,单击,双击
2012-03-06 09:48 2998/////////////////////////////// ...
相关推荐
挤塑板生产用造型机sw18_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
轿厢式电梯sw12可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
1、文件说明: Centos8操作系统thai-scalable-waree-fonts-0.6.5-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf thai-scalable-waree-fonts-0.6.5-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
内容概要:本文详细探讨了永磁同步电机(PMSM)中二阶自抗扰控制(ADRC)的应用,特别是将速度环和电流环合并的设计。文中介绍了ADRC的核心组件,包括跟踪微分器(TD)、扩张状态观测器(ESO)和非线性状态误差反馈控制律(NLSEF),并通过具体的Python和Matlab代码展示了这些组件的工作原理。此外,文章讨论了线性和非线性ADRC在合并控制中的实现及其优缺点,并强调了在Simulink建模时需要注意的技术细节。通过这种方式,ADRC能够显著提高电机的动态性能和抗干扰能力,尤其在面对复杂工况时表现更为突出。 适合人群:从事电机控制系统设计的研究人员和技术工程师,尤其是对自抗扰控制感兴趣的读者。 使用场景及目标:适用于需要提高永磁同步电机控制精度和效率的实际工程项目,旨在帮助读者理解和掌握ADRC的基本原理及其在速度环和电流环合并控制中的应用。 其他说明:文章不仅提供了理论解释,还包括了大量的代码片段和仿真技巧,有助于读者在实践中验证和优化控制策略。
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
《毛毛虫的袜子》伴奏.mp3
内容概要:电子设计竞赛(电赛)是旨在培养学生创新能力、实践能力和团队合作精神的科技竞赛。文章详细介绍了电赛的目的、流程、参赛要求及常见问题解答。竞赛目的在于通过解决实际问题激发创新思维、提升实践技能、增强团队合作和促进学术交流。竞赛流程分为报名、准备、竞赛、评审和颁奖五个阶段。参赛要求包括团队组成(3-5名学生,可跨专业组队)、配备指导老师、选择符合规定的项目主题以及确保作品符合技术规范。常见问题解答涵盖参赛专业限制、所需准备材料、评审标准和培训指导等方面; 适合人群:对电子技术感兴趣并希望提升自身能力的大学生; 使用场景及目标:①为有意参赛的学生提供详细的参赛指南;②帮助学生了解竞赛流程和要求,提前做好充分准备; 阅读建议:本文为有意参加电赛的学生提供了全面的信息和指导,读者应重点关注竞赛流程、参赛要求及评审标准等内容,以便更好地准备竞赛。
NLTK 是一个广泛使用的 Python 库,专注于自然语言处理(NLP)。它提供了许多工具和算法来处理文本数据,例如分词、词性标注、句法分析等。然而,这些功能通常需要依赖大量的语言数据(如语料库、词典、预训练模型等),这些数据被统称为 NLTK 数据资源 。 主要内容: a. 语料库(Corpora) 这些是用于训练和测试 NLP 模型的文本数据集合。 示例:gutenberg(古登堡计划的书籍)、brown(布朗语料库)、reuters(路透社新闻语料库)等。 b. 词典与词汇资源(Lexical Resources) 包括词频表、同义词词典(如 WordNet)、停用词列表等。 示例:wordnet(WordNet 同义词数据库)、stopwords(多语言停用词列表)。 c. 预训练模型(Pre-trained Models) 包含一些常用的 NLP 模型,例如分词器、词性标注器、命名实体识别器等。 示例:punkt(用于句子分割的预训练模型)、averaged_perceptron_tagger(词性标注器)。 d. 其他资源 包括一些辅助工具和配置文件,用于支持 NLTK 的各种功能。
内容概要:本文介绍了Python爬虫的基础知识,包括定义、优势、基本流程、常用库以及注意事项。爬虫是一种自动抓取网页信息的程序,Python因其简洁的语法、强大的库支持和跨平台特性成为爬虫开发的理想选择。文章详细讲解了爬虫的基本流程:发送请求、解析内容、存储数据和异常处理,并列举了requests、BeautifulSoup、Scrapy、lxml等常用库的功能。最后给出一个简单示例演示爬取网页标题的过程,同时强调了遵守robots.txt协议、设置合理请求间隔、处理反爬虫机制等注意事项。; 适合人群:对Python爬虫感兴趣的初学者或有一定编程基础的技术人员。; 使用场景及目标:①了解爬虫的工作原理和应用场景;②掌握Python爬虫的基本开发流程和常用库的使用方法;③能够编写简单的爬虫程序,为后续的数据分析、机器学习等任务提供数据支持。; 阅读建议:读者应结合实际案例进行练习,在理解理论的同时注重实践操作,确保能灵活运用所学知识。
内容概要:本文详细介绍了基于西门子PLC博途V17和WinCC 7.5sp2的一套高效工程模板。博途部分利用多重背景技术和梯形图+SCL混合编程,极大提升了编程效率和维护简便性。WinCC部分通过结构变量和面板实例,简化了人机界面的组态工作。此外,模板还包括丰富的功能库如PID控制、语音报警、报表生成功能等,显著增强了系统的实用性和用户体验。 适合人群:自动化领域的工程师和技术人员,尤其是初学者和有一定经验但仍需提高效率的从业者。 使用场景及目标:适用于工业自动化项目的快速开发与部署,旨在减少重复劳动,提高开发效率,缩短项目周期。通过使用该模板,工程师能够更快地上手并掌握先进的编程技巧和组态方法。 其他说明:文中提供了具体的代码示例和实际应用场景,有助于读者更好地理解和应用这些技术。同时提醒用户注意版权和使用权限的问题。
工作簿7777.xlsx
立式插秧机sw16可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
稳压罐sw16_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
内容概要:文章详细介绍了拦截器(Interceptor)的工作机制及其在HTTP请求响应全流程中的作用,包括在请求到达目标处理器之前、处理器处理请求之后以及视图渲染之前执行特定操作。拦截器的应用广泛,如日志记录、权限控制、性能监控、请求参数处理和身份验证与授权等。文中还提供了创建拦截器的方法,可以通过实现`HandlerInterceptor`接口或继承`HandlerInterceptorAdapter`类来创建,并且展示了如何配置拦截器,将其添加到配置中以拦截所有请求,还可以通过`@Order`注解配置拦截器的执行顺序。多个拦截器按照配置顺序依次执行其`preHandler`、`postHandler`和`afterCompletion`方法,确保请求处理流程的有序性和灵活性。 适合人群:具有一定Java Web开发经验,尤其是熟悉Spring框架的开发者。 使用场景及目标:①理解拦截器在Web应用中的工作原理;②掌握如何创建和配置拦截器以实现特定功能;③学习如何利用拦截器实现如日志记录、权限控制等功能,提升Web应用的安全性和性能。 阅读建议:在学习过程中,应结合实际项目需求,理解每个拦截器方法的作用,并尝试在自己的项目中实现相应的拦截器,以加深对其工作机制的理解。
内容概要:本文详细介绍了如何使用Matlab进行预测不确定性的仿真,重点讲解了置信区间的计算方法及其可视化。文章通过具体的代码示例展示了如何计算区间覆盖率(PICP)和区间平均宽度百分比,并提供了多种优化技巧,如使用norminv函数计算正态分布分位数、动态计算标准差以及分位数回归等。此外,还分享了一些常见的错误和改进建议,帮助新手快速掌握这一技能。 适合人群:初学者和有一定编程基础的Matlab用户,特别是那些希望深入了解预测不确定性和置信区间计算的人。 使用场景及目标:① 学习如何使用Matlab进行预测不确定性的仿真;② 掌握置信区间的计算方法及其可视化;③ 提高预测模型的可靠性和准确性。 其他说明:文中提供的代码可以直接应用于实际数据,只需替换示例数据即可。同时,文中还提到了一些高级技巧,如动态标准差计算和分位数回归,可以帮助用户进一步优化预测模型。
内容概要:本文旨在帮助电子信息、自动化、通信等专业学生更好地理解和完成电子硬件课后习题。文章首先指出电子硬件课程的难度,特别是课后习题部分。接着详细介绍了四个主要方面的解题技巧:一是正确理解电路图,强调在分析电路时要先明确电路特性再进行计算;二是利用等效变换简化电路,通过戴维南定理等方法将复杂电路转化为简单结构;三是总结常考题型,如RC、RL电路分析、放大电路分析等,并给出解题关键词;四是强调动手实践与理论思考相结合,鼓励使用仿真软件和实际搭建电路来增强理解。最后提出学习建议,包括多画图、分类练习、与同学交流等,以提高学习效率。 适合人群:电子信息、自动化、通信等相关专业的学生,尤其是正在学习电子硬件课程的学生。 使用场景及目标:①帮助学生克服电子硬件课程中遇到的困难,特别是课后习题部分;②提高学生对电路分析、等效变换等基本概念的理解和应用能力;③培养学生的动手能力和解决实际问题的能力。 阅读建议:本文提供了丰富的解题技巧和学习建议,读者应结合自身学习情况,边读边思考,并尝试将文中提到的方法应用于实际练习中,以达到更好的学习效果。
内容概要:本文探讨了车载刷写架构中 ECU 收到相同 blockSequenceCounter 数据包的情况,基于 ISO14229 标准,详细解释了 UDS 诊断服务(特别是 34、36 和 37 服务)在 ECU 刷写过程中的作用。文章重点分析了 TransferData 服务(SID 0x36)的实现逻辑,包括 blockSequenceCounter 的状态管理和重复数据包处理机制,以确保数据传输的鲁棒性和协议合规性。通过合理的状态管理和计数器递增逻辑,避免了数据覆盖或丢失,并提高了 ECU 存储寿命。 适合人群:具有汽车电子相关背景的研发工程师和技术人员,尤其是从事 ECU 诊断刷写工作的专业人士。 使用场景及目标:①理解 UDS 诊断服务在 ECU 刷写中的具体应用,特别是 34、36 和 37 服务的作用;②掌握 blockSequenceCounter 的状态管理和重复数据包处理机制,确保数据传输的可靠性;③确保 ECU 刷写过程符合 ISO 14229 标准,提高系统鲁棒性和资源效率。 其他说明:文章提供了详细的测试用例设计,帮助开发者验证 ECU 对重复包的处理是否符合预期。同时强调了在重复包场景中确保无冗余写入操作的重要性,尤其是在 Flash 存储中避免擦写寿命损耗。此外,还提到了超时处理和错误恢复机制,以应对实际应用中的各种情况。
c语言奔跑的火柴人游戏源码.zip