iPhone+笔记.doc_第1页
iPhone+笔记.doc_第2页
iPhone+笔记.doc_第3页
iPhone+笔记.doc_第4页
iPhone+笔记.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

# interface event : nsmanagedobject property (nonatomic, retain) nsdate *creationdate; property (nonatomic, retain) nsnumber *latitude; property (nonatomic, retain) nsnumber *longitude; end #import event.h implementation event dynamic creationdate; dynamic latitude; dynamic longitude; end 从上面我们能看出来,一个实体event也就会被生成一个nsmanagedobject(被管理对象),然后任何accessor和getter 都是被动态生成的,我们其实完全不用操任何的心,只需要在xcdatamodel文件里面配置后,点击添加文件,添加nsmanagedobject文件,就会看到自动感知的类对象,然后生成就可以了。 下面是根视图控制器,是一个列表视图(uitableviewcontroller) #import interface rootviewcontroller : uitableviewcontroller /看到是uitableviewcontroller的子类,由于需要使用core location, /所以在后面履行其protocal nsmutablearray *eventsarray; nsmanagedobjectcontext *managedobjectcontext; /这个被管理对象内容器就是我们真正对core data数据的操作对象 cllocationmanager *locationmanager; /用来得到地理位置的core location对象 uibarbuttonitem *addbutton; /右上角的添加键 property (nonatomic, retain) nsmutablearray *eventsarray; property (nonatomic, retain) . coredata 实例分析学习(1)补 coredata实例分析学习(1) 补一下“实体”的概念,实体也就是entity,在打开xcdatamodel文件的时候,我们可以看到 在这里,这个实体叫“event”,而实体的参数有“创建日期”,“纬度”,“经度”。也就是说,其实这个实体被使用后,我们可以这样理解,实体就是表名,而参数就是列名,然后整个实体就是一张表。当这个model描述多个实体的关系的时候,就像是一个关系型数据库一样,虽然苹果说“不是!” coredata 实例分析学习(1) core data是个好东西,在数据储存操作上速度快,容易操作,是一种类似关系数据库的东西。但是有些不那么好学,那到底core data是怎么操作的呢?怎么用呢?怎么来编程呢?我们一起来学习吧,接下来使用苹果提供的实例程序locations来作分析: 程序介绍: 右侧是改程序的截图,基本上来说就是通过使用core location来得到当时的位置,然后在点击“+”的时候记录下当时的经纬度。通过uitableviewcontroller的功能来添加,编辑,删除等功能。整体程序使用core data来储存数据,实体(entity)为一个位置,包括以下参数:1,时间(收集数据的时间)2,纬度,3,经度 首先我们看看该程序的appdelegate.h interface locationsappdelegate : nsobject uiwindow *window; uinavigationcontroller *navigationcontroller; /导航栏 /以下定义了core data的三个决定性组建,等后面m文件里面再多介绍 nspersistentstorecoordinator *persistentstorecoordinator; nsmanagedobjectmodel *managedobjectmodel; nsmanagedobjectcontext *managedobjectcontext; property (nonatomic, retain) iboutlet uiwindow *window; property (nonatomic, retain) uinavigationcontroller *navigationcontroller; - (ibaction)saveaction:sender; /这个没找到作用根本就没用到ib /还记得吧,nonatomic是因为这个程序是单线程 property (nonatomic, retain, readonly) . 得到用户的首选语言 nsuserdefaults* defs = nsuserdefaults standarduserdefautls; /得到用户缺省值 nsarray* languages = defs objectforkey:applelanguages; /在缺省值中找到applelanguages, 返回值是一个数组 nsstring* preferredlang = languages objectatindex:0; /在得到的数组中的第一个项就是用户的首选语言了 简单 iphone视频播放器(1)补 在使用mp库之前是需要将其导入的,上次忘记了,这回将截图发上来 首先在左侧找到targets 然后打开,双击这个工程名 你就可以看到下面的图了 点击左下角的+号 找到mediaplayer.framework 然后点add,完成! 之后就只需要在需要使用库的地方添加下面的代码拉 #import mediaplayer/mediaplayer.h 简单 iphone视频播放器(1) 本程序源代码,不包含视频文件 视频播放在iphone中是再重要不过了,今天要在30行内解决iphone视频播放的问题! 1,建立工程mptest1 2, 建立一个uiviewcontroller类 mympviewcontroller 3, 设置mptest1appdelegate初始化并添加mympviewcontroller的view到window interface mptest1appdelegate : nsobject uiwindow *window; mympviewcontroller *mpviewcontroller; end - (void)applicationdidfinishlaunching:(uiapplication *)application mpviewcontroller = mympviewcontroller alloc init; window addsubview:mpviewcontroller.view; window makekeyandvisible; 4, 设置mympviewcontroller在一个按钮点击后播放视频 interface mympviewcontroller : uiviewcontroller uibutton *playbutton; end interface mympviewcontroller() - (void)playvideo; end implementation mympviewcontroller - (id)init if (self = super init) playbutton = uibutton buttonwithtype:uibuttontyperoundedrect retain; /在这里初始化那个按键 playbutton.frame = cgrectmake(100, 100, 100, 30); self.view addsubview:playbutton; return self; - (void)viewdidload . retain 和copy的区别 原来简单解释过属性定义(property) ,并且提起了简单的retain,copy,assign的区别。那究竟是有什么区别呢? assign就不用说了,因为基本上是为简单数据类型准备的,而不是ns对象们。 retain vs. copy! copy: 建立一个索引计数为1的对象,然后释放旧对象 retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 那上面的是什么该死的意思呢? copy其实是建立了一个相同的对象,而retain不是: 比如一个nsstring对象,地址为01111,内容为”str” copy到另外一个nsstring之后,地址为02222,内容相同,新的对象retain为1,旧有对象没有变化 retain到另外一个nsstring之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1 也就是说,retain是指针拷贝,copy是内容拷贝。哇,比想象的简单多了 在 iphone上显示lcd效果 我看到一个程序是这样样子的: 哇!好厉害,怎么弄出来的!难道要用q2d画出来么? 不 其实这就是uilabel外加一个奇异的字体 dblcdtempblack and, thats it! 生活多么美好阿 不要对 viewcontroller作这样的事情 错误: uiviewcontroller *aviewcontroller = uiviewcontroller alloc init; window addsubview:aviewcontroller.view; aviewcontroller release; 这样的话,系统会崩溃的 window或着其他父视图是不会retain整个viewcontroller的,这个时候不能立刻release 正确: aviewcontroller.view removefromsuperview; aviewcontroller release; 也就是说,在release之前需要从superview中移除这个viewcontroller的view。如果一直都需要这个view,那就在 dealloc里面作这些事情就可以了 数据类型/ 对象类型介绍(1)nsstring 字符串是程序设计最常用的数据类型之一了。在mac/iphone编程中,苹果为我们提供了一个不同的字符串类型 nsstring。有别与普通的string为数据类型,nsstring其实是一个对象类型。nsstring是nsobject(cocoa foundation的基础对象)的子类,所以具有nsobject的所有特性,好的和好的 . 小常识: ns是cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司next. 是cocoa元素的前缀,很多地方我们会看到,比如接下来 1, 创建一个nsstring对象 简单方法: nsstring *astring = 我是个ns字符串!; /除了引号外加, 没别的区别 *上面的不需要操心内存管理哟 复杂一点儿:(需要内存管理的) nsstring *astring = nsstring alloc initwithformat:这也是个ns字符串!; *initwithformat是其中一个初始化方法,常用的还有 /从一个文件读取需要的内容 - (id)initwithcontentsoffile:(nsstring *)path encoding:(nsstringencoding)enc error:(nserror *)error /从一个地址读取需要的内容 - (id)initwithcontentsofurl:(nsurl *)url encoding:(nsstringencoding)enc error:(nserror *)error *以上方法得到的nsstring的retain值为1,所以记得release掉阿 2,使用一个nsstring对象 nsstring *astring = this is a nsstring; nslog(astring); /在控制台输出信息,该函数方法需要一个nsstring对象作为参数 nslog(这样不会好使的); nslog(这样就会好使拉); 再比如设置一个uiview的标题: uiview settitle:astring; uiview settitle:标题; uiview.title = astring; 3,释放nsstri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论