Objective-C
DanielYQ
这个作者很懒,什么都没留下…
展开
-
OC中解档读取内容为空
问题:今天在写归档和解档的代码,将数据归档并写入文件后,发现写入成功,但是再解档读取发现读取为null,原因是:在创建NSKeyedArchiver时候使用类方法,但是创建NSKeyedUnarchiver时候使用实例方法造成的错误。解决:创建归档器和解档器时候保持一致,要么都用类方法,要么都用实例方法。原创 2015-10-26 15:46:55 · 598 阅读 · 0 评论 -
合成存取器中copy和retain的区别
前言:最近在学OC内存管理,想到了一个问题:如果使用@property来声明的copy和retain都可以实现引用计数管理,那么两者有什么区别?然后上网找了找,看了一些说法,可是没有什么比自己动手解决来的透彻,自己写了个小demo,然后通过这个小demo记录一下二者的区别,我讨论的只是我懂的,如有谬误可以发邮件给我>>>>@975215414@qq.com要从OC中的深拷贝和浅拷贝说起,浅拷贝是原创 2015-10-16 17:30:14 · 530 阅读 · 0 评论 -
OC动态字典和数组演示demo
前言及题目:最近在学OC框架,学到了字典和数组,于是写了一道练习题,这道题从语法角度来说并不难,但是逻辑和类的设计上麻烦一些。可能因为我是小白的原因吧!在这里把这个代码记录下来,因为我写了两个小时吧,从拿到题目开始构思到完成。题目: 定义三个新类,分别名为Song、PlayList和MusicCollection。Song对象包含着关于特定歌曲的信息,比如歌曲名、艺术家、专辑、歌曲长度等原创 2015-10-15 00:38:28 · 1350 阅读 · 0 评论 -
最长公共子字符串查找(OC实现)
前言:使用类别扩展NSString实现。题目及代码:OC–最长公共子字符串查找main.m//实现查找两个字符串中最大相同的子串,例如:”likeyou”和”lookyou”,最大相同的子串是”you”。#import <Foundation/Foundation.h>#import "NSString+Find.h"int main(int argc, const char * argv[原创 2015-10-12 23:33:53 · 1141 阅读 · 0 评论 -
直接插入排序(OC实现)
一个小程序#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { @autoreleasepool {// C-实现// int a[5]={9,8,10,2,20};// int key,j;// for (int i=1; i<5;原创 2015-10-25 00:56:19 · 1040 阅读 · 0 评论 -
OC之类别总结
前言:上一篇我写的是“非正式协议”,这一篇是类别。其实两篇的顺序应该颠倒一下,等我写完这一篇再做调整,大家先尝尝鲜。和Android开发不同的是,ios开发是不能查看源代码的,所以很多库函数的实现还有很多类的内部封装我们都看不到。为了能够更好的进行开发,让我们对代码的控制度更高,oc里面支持了“类别”,所谓类别,就是我们可以随意扩展一个类的方法,无论是自定义的类还是NSString之类的框架类。我能原创 2015-10-11 15:50:51 · 499 阅读 · 0 评论 -
OC之正式协议总结
前言:最近要学的东西好多,博客没有太多时间去写,但是还是要及时总结一下,否则即使用的很熟练,很多东西还是ran的不行~ 上一篇写了一个老板出差的小demo,总结了一下非正式协议Extension,这一篇会写一个相同的demo总结正式协议Protocol1.Demo解释老板又要去上海了!! 他很忙。。。然后呢,很多事情他拒绝自己去做,惜时如金!(其实他说谎。。。真正的原因我猜测是想要代码更简洁,耦原创 2015-10-10 16:31:35 · 407 阅读 · 0 评论 -
OC之非正式协议总结
前言:在OC中非正式协议用的不多。1.Demo解释:写了一个demo,就是老板要出差去上海,于是就会派遣员工去张罗着件事,买机票,买水和食物,还要处理走之前公司的事情。老板如果自己做,这些代码就要实现在自己的代码里面,但是如果把这些方法声明在协议里面,就减少了代码的耦合度,任何人都可以做这些事情,老板只需要指定某个实现该协议的人去做就ok了,随时可以裁员,换人。我们可以使用正式协议也可以使用非正式协原创 2015-10-10 15:57:29 · 497 阅读 · 0 评论 -
OC之合成存取器总结
前言:学过面向对象开发的都知道当编写一个类的时候,对于成员变量需要些setter和getter方法,在java中我们都是自己写,很烦… 在OC中有一个很ok的东西,叫做合成存取器.@property 使用方法很简单,可以用这个来声明成员变量,就可以省去setter和getter.写一个简单的demo帮助理解.Demo//:自定义类头文件—Person.h:#import <Foundation/原创 2015-09-25 17:02:03 · 461 阅读 · 0 评论