cocios面试题-objective一、答题_第1页
cocios面试题-objective一、答题_第2页
cocios面试题-objective一、答题_第3页
cocios面试题-objective一、答题_第4页
cocios面试题-objective一、答题_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

Objective_C2、#import和#include的区别是什么?#import<>#import""有什么区别?一般来说,导入objectivec的头文件时用#import,包含c/c++头文件时用#include。classA,classB都了classC,classD若classA与classB,就会报重复的错误Category是类目。用类目好,因为继承要满足aisab的关系,而类目只需要满足ahasab的关系,局限性更小,你不,用CategoryCategory没有*循 现在执行[Arelease];[Brelease];此时创建对象的main函数已经了自己对对象的所,但是此时A和B的计数都还提供工厂方法对该全局实例进行,检查该变量是否为nil,如果nil就创建一个新的实例,最后返回全局实在头文件中,一般只需要知道被的类的名称就可以了。不需要知道其的实体变量和方法,所以在头文件使用assign:(NSInteger,CGFloat)和C数据类型(intfloat,double,char,)使用copy:希望获得源对象的副本而不改变源对象内容时,对NSString使用retain:希望获得源对象的所时,对其他NSObject和其子readonly是只读特性只会生成gettersetterassignsetter方法将传入参数赋值给实例变量;仅设置变量时;retainsetter方法将传入参2.id的对象有什么特性遵循CocoaTouch那些关键字生成的对象需要手动?关键字allocnew Profile->Instruments->Time描述一下iOSSDK中如何实现MVCMVC是模型、试图、控制开发模式,对于iOSSDK,所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。线程创建有三种方法:使用NSThread创建、使用的dispatch、使用子类化的NSOperation,然后将其加入NSOperationQueue;在主线程执行代码,方法是performSelectorOnMainThread,如果想延时执行代码可以用1、5的屏幕分辨率大小为1136*640屏幕分辨率:用于量度位图图像内数据量多少的一个参数。通常表示成ppi(每英寸像素Pixelperinch)。屏幕物理尺寸2、structstrA{ inta; floatb; charc;}expA;printf("%ld", 输出结果为12对齐的作和原因各个硬平台对空间处上有很大不同。些平台某些特类型的据能从某些特来损失比些平每次读是从址开始如果个n(假设为32位如存放偶地址开的地方2字节进行拼凑能得到该n据。显在率上下很多。这是空间时间的弈。#progmapack@property参数1,参数2))(readwrite/readonly)原子性:(atomicity/nonatomic)原子性就是说一个操作不可以被中途cpu暂停然后调度,即不能被中断,要不就执行完,要不就不执行.如果一个操作是原子性的,那么在多线程环境下,超文本传输协议(HTTP-Hypertexttransferprotocol)是分布式协作式超系统应用之间的通信协议是(worldwideSMTP(SimplTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制DNS是系统(NameSystem)的缩写,是因特网的一项服务,它作为可以将和IP地址相互的一个分SNMP(SimpleNetworkManagementProtocol,简单网络管理协议)的前身是简单网关协议(SGMP),用来对通信线路进行管layer)通信协议,由IETF的RFC793说明(specified)。UDP是UserDatagramProtocolOSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC768是UDP的正式规范。、、@propertynonatomicretain)test*aTest;@property(nonatomic,copy)test*aTest;-(void)aTestreturn}==========@propertyretaintest*aTest;@property(copy)test*aTest;-{[aTestreturn[aTest}@property(nonatomic,retain)test*aTest;@property(retain)test*aTest;-(void)setaTest:(test*)newaTest{if(aTest!=newaTest){[aTestaTest=[newaTest}}==========@property(nonatomic,copy)test*aTest;@property(copy)test*aTest;-(void)setaTest:(test*)newaTest{if(aTest!=newaTest){[aTestaTest=[newaTest}}#10、JSON中{}代 ,[]代 {"people":{"Name":"Brett","lastName":"McLaughlin","":"aaaa"{"Name":"Jason","lastName":"Hunter","":{"Name":"Elliotte","lastName":"Harold","":"cccc"}JSON中代表对象,数据结构为{key1:value1,key2:value2,key3:[]@interfacePeople:@property(nonatomic,copy)NSString*strName;@property(nonatomic,copy)NSString*strLastName;@property(nonatomic,copy)NSString*str;@interfaceJSonData:@propertynonatomic,retainNSMutableArray*arrPeople;//存放People@property(nonatomic,copy)NSString* cocoa中所有的类都是NSObject的子类 多继承在这里是用protocol委托来实现的 在obj-c中通过委托来实现.objective-c–类里面的方法只有两种,静态方法和实例方法@interfaceController{NSString}+(void)thisIsAStaticMethod;–(void)thisIsAnInstanceMethod;@end@interfaceController-(void)thisIsAPrivateMethod;可以用来修饰私有变量在分配方式:堆都是动态分配的,动态分配由alloca函数进行分配线进程的区别从内存来{intint*ptr=(int*)(&a+1);}答&a+1不是首地址+1,a(本例是5int)int*ptr=(int*)(&a+1);&ainta5intprt-1sizeof(int*)WindowsNT32C++sizeofvoidFunc(charstr[100]{sizeof(str)=?}void*p=malloc(100);sizeof(p)=?这题很常见了,Funccharstr[100]个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。WindowsNT32位平台下,指针的长度(占用内存的大小)为4sizeof(str)、sizeof(p)都为4。还是考指针,不过我对cocoa的代码还是不太熟-(void)*getNSString(constNSString*{inputString=@"Thisisamaintest\n";return;}-{NSStringNSString*aString=[NSStringstringWithString:@"%@",getNSString(a)];NSLog(@"%@\n",aString);}用预处理指令#define一个常数,用以表明1年中有多少秒(忽略闰年问题#defineSECONDS_PER_YEAR(60*60*24*#define(例如:不能以分号结束,括号的使用,等等#defineMIN(A,B)(A)<=(B)?(A):Cif-then-else•;懂得在宏中地把参数用括号括起least=MIN(*p++,((*p++)<=(b)?(*p++):interface@protocolMyDelegate;@interfaceMyClass:NSObject id<MyDelegate>delegate;@protocolMyDelegate(void)didJobs:(NSArray*)args;写一个NSString类的实+(id)initWithCString:(constchar*)nullTerminatedCString+(id)stringWithCString:(constchar*)nullTerminatedCStringencoding:(NSStringEncoding)encoding{NSStringobj=[selfallocWithZone:obj=[objinitWithCString:nullTerminatedCStringencoding:encoding];returnAUTORELEASE(obj);}obj-c有多重继承么?不是的话有什么替代方cocoa中所有的类都是NSObject多继承在这里是用protocol委托来实现的ood的多态特性在obj-c中通过委托来实现.obj-c有私有方法么?私有变量objective-c-类里面的方法只有两种,静态方法和实例方法.这似乎就不是完整的面象了,按照OO的原则就是一个对象只有用的东西.如果没有了私有方法的话,对于一些小范围的代码重用就不那么顺手了.在类里面声名一个私有方法@interfaceController:NSObject{NSString*something;}+@interfaceController(private)-constinta;intconsta;constint*a;int*constintconst*a前两个的作用是一样,aa(也就是,整型数是不可修改的,但你曾花很多时间清理其它人留下的,你就会很快学会感谢这点多余的信息(当然,懂得用const的程序员很少会留下constbug欲一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初constconst,或二者同时指定为const;const关键字volatile有什么含意?并给出三个不同的例这个变量时必须每次都地重新这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例•;一个中断服务子程序中会到的非自动变量(Non-automaticvariables)•;多线程应用中被几个任务共享的变volatilestatic关键字的作用staticauto在模块内的static全局变量可以被模块内所用函数,但不能被模块外其它函数staticstatic在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能类的static成员变量extern"C"extern"CexternexternC/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,extern"CCextern"C"在C++中C语言中的函数和变量,在包含C语言头文件(假设为cExample.h)时,需进extern{#include 而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern"C",在.c文件中包含了extern"C"时会出现编译语法错误。在C中C++语言中的函数和变量时,C++的头文件需添加extern"C",但是在C语言中能直接了extern"C"的该头文件,应该仅将C文件中将C++中定义的extern"C"函数extern#ifndef#define#ifdefextern"C"{#ifdef}#endif/*

INCvxWorksh

INCvxWorksh、#endif”#import跟#include的区别,@class@class一般用于头文件中需要该类的某个实例变量的时候用到,在m文件中还是需要使用#import而#import#includeMVC模式的理MVC 答案:原子操作信号量机制 overflow。因此,能从栈获得的空间较小。 C/C++函数库提供的,它的机制是很复杂的。键-值,键路径是什(个属性所有值有相同数据类。-值编码技用于进这样的找—它一种接对象属的机制键路径是个由用作分隔的键组的字符,于指定接在起的对性质序。第一键性质是由前的性Forexample,thekeypathaddress.streetwouldgetthevalueoftheaddresspropertyfromthereceivingobject,andthendeterminethestreetpropertyrelativetotheaddressobject.cobj-c如何混1)obj-cmobj-ccmmobj-c,c,c++obj-cimport,mm。如果模块以函数实现,那么头文件要按c的格式函数,实现文件中,c++函数可以用obj-c,但后缀还是mm或m。总结:只要cpp文件和cppinclude的文件中不obj-c的东西就可以用了,cpp混用obj-c的关键是使用接口,而不能直接使用实现代码,实际上cpp混用的是obj-c编译后的o文件,这个东西其实是无差别的,所以可以用。obj-c的编译器cpp.目标-动作机cocoatouchOS应用程序的基础CocoaTouch框架重用了许多Mac系统的成熟模式,但是 IKit为您提供了在OS上实现图形,事件驱动程序的基本工具,其建立在和MacOSX中一样的Foundation框架CocoaTouch具有和用户接口一致的特殊设计。有了UIKit,您可以使用OS上的独特的图形接口控件,按各色俱全的框架除了UIKit外,CocoaTouch包含了创建世界一流应用程序需要的所有框架,从三维图形,到专业音效,甚至提供设备API以控制头,或通过GPS获知当前位置。CocoaTouch既包含只需要几行代码就可以完成全部任务的强大的Objective-C框架,也在需要时提供基础的C语言API来直接系统。这些框架包括:CoreCoreAnimation,您就可以通过一个基于组合独立图层的简单的编程模型来创建丰富的用户体验。CoreAudioCoreCocoaTouchCoreAudioMediaLibraryAVFoundationCoreDataCoreAnimationOpenGLESQuartz2DBSDSocketsAddressBookCoreLocationMapKitStoreKitobjc的内存管如果您通过分配和初始(比如[[MyClassalloc]init])的方式来创建对象您就拥有这个对象需要负责该对象的。NSObjectnew时也同样适用。自动池是什么,如何工ojc-c是通过一种"referringcounting"(计数)的方式来管理内存的,对象在开始分配内存(alloc)的时候计数为一,以后每当碰到有copy,retain的时候计数都会加一,每当碰到release和autorelease的时候计数就会减一,如果此对象的计数变为了0,就会被系统销毁.autorelease和release没什么区别,只是计数减一的时机不同而已,autorelease会在对象的使用真正结束的时候才这些方法的形式是+(type)className...(其中className。工厂方法可能不仅仅为了方便使用。它们不但可以将分配和初始化合在一起,还可以为初始化过程提供对象的分配信息。类工厂方法的另一个目的是使类(NSWorkFoundation和ApplicationKit框架中的一些类只允许创建单件对象,即这些类在当前进的唯一实例。举例来说,NSFileManagerNSWorkspace类在使用时都是基于进程进行单件对象的实例化。当向这些类请求实例的时候,它们会向您传NSWor

温馨提示

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

评论

0/150

提交评论