iOS(Objective-C语法)面试、笔试题目
2015-06-01 19:03
453 查看
这份题目是参考了网上的其他题目,并结合我自己的经验出的,希望能对大家有帮助。
1. 为什么Foundation框架中的类名都是以NS开头?(Just for fun)
2. 以下方法中哪一个返回的不是autorelease对象?
A. [NSData data]; B.[NSString stringWithString:];
C. [NSNumber numberWithInt:];
D. [NSTimer scheduledTimeInterval:target:selector:userInfo:repeats:];
3. #import与#include的区别是?
4. @class的作用是?
5. obj-c有多重继承么?不是的话有什么替代方法?
6. 一下哪个方法名是合法的?
A. initWithFileID:filename:filePath:: B. startDownload
C. finishDownload:::::: D.以上都是合法的
7. 一个工程中存在group类(group.m, group.h)和people类(people.m, people.h),在group.m文件中的test方法如下:
-(void)test{
People*people = [[People alloc] init];
[NSTimerscheduledTimeInterval: 1.0f target:people selector:@selector(onCall) userInfo:nil repeats:YES];
}
请问onCall方法应该写在哪个文件中?
A. group.m B. group.h
C. people.m D.people.h
8. 一个成员变量的声明如下:
@interface Test : NSObject{
NSString*str1;
NSString*str2;
}
@property (nonatomic, assign) NSString *str1;
@property (nonatomic, retain) NSString *str2;
@end
@implementation Test
@synthesize str1;
@synthesize str2;
-(id)init{
self.str2= [NSString stringWithString:@”hello world”];
[str2retain];
self.str1= [[NSString alloc] initWithString:str2];
[str2release];
请问此时str1和str2的retainCount是多少?(不考虑系统对常量字符串的优化)
}
@end
9. 某个类中有一个test方法如下:
-(void)test{
NSString*str1 = [[NSString stringWithString:@”hello world”] retain];
NSString*str2 = [[[NSString alloc] init] autorelease];
(1) 请问此时str1与str2的retainCount是多少?(不考虑系统对常量字符串的优化)
str1 =[[[NSString alloc] initWithString:@”hello world”] autorelease];
str2 =[[NSString alloc] initWithString:str1];
[str1 release];
(2) 请问此时将str1和str2输出的结果是什么?(不考虑系统对常量字符串的优化)
}
10. 请描述Objective-C的动态特性。
11. 这段代码有什么问题,如何修改?
for (int i = 0; i < someLargeNumber;i++)
{
NSString *string= @”Abc”;
string = [stringlowercaseString];
string = [stringstringByAppendingString:@"xyz"];
NSLog(@“%@”,string);
}
12. 请写出以下类成员变量自动生成的Getter和Setter方法。
@property (nonatomic, retain) NSString *str1;
@property (nonatomic, assign) NSString *str2;
@property (nonatomic, assign) int num;
@synthesize str1 = _str1;
@synthesize str2 = _str2;
@synthesize num = _num;
1. 为什么Foundation框架中的类名都是以NS开头?(Just for fun)
2. 以下方法中哪一个返回的不是autorelease对象?
A. [NSData data]; B.[NSString stringWithString:];
C. [NSNumber numberWithInt:];
D. [NSTimer scheduledTimeInterval:target:selector:userInfo:repeats:];
3. #import与#include的区别是?
4. @class的作用是?
5. obj-c有多重继承么?不是的话有什么替代方法?
6. 一下哪个方法名是合法的?
A. initWithFileID:filename:filePath:: B. startDownload
C. finishDownload:::::: D.以上都是合法的
7. 一个工程中存在group类(group.m, group.h)和people类(people.m, people.h),在group.m文件中的test方法如下:
-(void)test{
People*people = [[People alloc] init];
[NSTimerscheduledTimeInterval: 1.0f target:people selector:@selector(onCall) userInfo:nil repeats:YES];
}
请问onCall方法应该写在哪个文件中?
A. group.m B. group.h
C. people.m D.people.h
8. 一个成员变量的声明如下:
@interface Test : NSObject{
NSString*str1;
NSString*str2;
}
@property (nonatomic, assign) NSString *str1;
@property (nonatomic, retain) NSString *str2;
@end
@implementation Test
@synthesize str1;
@synthesize str2;
-(id)init{
self.str2= [NSString stringWithString:@”hello world”];
[str2retain];
self.str1= [[NSString alloc] initWithString:str2];
[str2release];
请问此时str1和str2的retainCount是多少?(不考虑系统对常量字符串的优化)
}
@end
9. 某个类中有一个test方法如下:
-(void)test{
NSString*str1 = [[NSString stringWithString:@”hello world”] retain];
NSString*str2 = [[[NSString alloc] init] autorelease];
(1) 请问此时str1与str2的retainCount是多少?(不考虑系统对常量字符串的优化)
str1 =[[[NSString alloc] initWithString:@”hello world”] autorelease];
str2 =[[NSString alloc] initWithString:str1];
[str1 release];
(2) 请问此时将str1和str2输出的结果是什么?(不考虑系统对常量字符串的优化)
}
10. 请描述Objective-C的动态特性。
11. 这段代码有什么问题,如何修改?
for (int i = 0; i < someLargeNumber;i++)
{
NSString *string= @”Abc”;
string = [stringlowercaseString];
string = [stringstringByAppendingString:@"xyz"];
NSLog(@“%@”,string);
}
12. 请写出以下类成员变量自动生成的Getter和Setter方法。
@property (nonatomic, retain) NSString *str1;
@property (nonatomic, assign) NSString *str2;
@property (nonatomic, assign) int num;
@synthesize str1 = _str1;
@synthesize str2 = _str2;
@synthesize num = _num;
相关文章推荐
- 线程函数的设计以及MsgWaitForMultipleObjects函数的使用要点
- iOS中Objective-C与JavaScript之间相互调用的实现(实现了与Android相同的机制)
- [Objective-C] 004_继承封装与多态
- Java基础 面向对象(3) 多态 Object类-equals() toString()
- JS性能方面--内存管理及ECMAScript5 Object的新属性方法
- C# 中object sender与EventArgs e
- Objective-C 测试框架 GHUnit 的使用
- objective c内存管理
- ?Object-C获取手机设备信息
- Swift 与 Object-C 交互 (Swift版本为:1.2)
- iOS开发(Objective-C)常用库索引
- objective-c第十六章练习题
- var object dynamic的区别
- Object sharing for Runnable vs. extends Thread
- Objective-C的内省(Introspection)机制
- Objective-C Autorelease Pool 的实现原理
- 说说MFC中CRuntimeClass和CObject之间的那点事
- 关于OC中消息转发机制的理解以及在项目中的实际应用
- Objective-C Runtime Programming Guide
- quartus II 报错(Error (10839): Verilog HDL error at sdram_params.v(30): declaring global objects is a)