面试题分享【不断更新】
2013-02-22 21:27
218 查看
问题1:求以下程序段的输出
答案:3131问题2:求以下程序段的输出
答案:9 问题3:简述两个for循环的优缺点
答案:无 问题4:请指出下面代码的问题
问题6:在你的日常开发过程中,是否遇到过崩溃问题?怎么解决?答案:无问题7:请写出使用委托(代理)的示例代码。答案:A委托BA.h
A.m
B.h
man.m
// 输出do something...问题8:写出控制器加载视图的常规调用方法流程。答案:loadViewviewDidLoadviewWillAppearviewWillLayoutSubviewsviewDidLayoutSubviewsviewDidAppear问题9:Objective-C有多重继承么?不是的话,请以示例代码说明。答案:无问题10:请写出下面代码的打印结果(默认在32位机器下运行)。
答案:无 问题12:检查如下代码是否有问题,如果有问题,正确的写法是?
答案:无
int test(int x, int y) { x = x + y; return x * y; } int main(int argc, const char * argv[]) { @autoreleasepool { int x = 3, y = 10, z = test(x, y); NSLog(@"%d%d", x++, ++z); } return 0; }
答案:3131问题2:求以下程序段的输出
int func(int x) { int countx = 0; while (x) { countx++; x = x&(x-1); } return countx; } int main(int argc, const char * argv[]) { @autoreleasepool { NSLog(@"%d", func(2013)); } return 0; }
答案:9 问题3:简述两个for循环的优缺点
for (i = 0; i < N; i++) { if (condition) { doSomeThing(); } else { doOtherThing(); } } if (condition) { for (i = 0; i < N; i++) { doSomeThing(); } } else { for (i = 0; i < N; i++) { doOtherThing(); } }
答案:无 问题4:请指出下面代码的问题
UIView *tmpView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.view addSubview:tmpView];答案:无 问题5:你所了解的单例有哪些?请写了一个单例的示例代码。答案:
@interface Manager : NSObject + (id)sharedManager; @end
static Manager *instance = nil; @implementation Manager + (id)sharedManager { if (!instance) { instance = [[super allocWithZone:NULL] init]; } return instance; } // 复写allocWithZone和copyWithZone的目的是在外部多次调用alloc的时候,内部能够确保对象只创建了一次 + (id)allocWithZone:(NSZone *)zone { return [[self sharedManager] retain]; } - (id)copyWithZone:(NSZone *)zone { return self; } // 复写retain、retainCount、release、autorelease避免单件对象被外部释放 - (id)retain { return self; } - (NSUInteger)retainCount { return NSUIntegerMax; } - (void)release { } - (id)autorelease { return self; }
问题6:在你的日常开发过程中,是否遇到过崩溃问题?怎么解决?答案:无问题7:请写出使用委托(代理)的示例代码。答案:A委托BA.h
@protocol ADelegate; @interface A : NSObject @property (nonatomic, assign) id<ADelegate> delegate; - (void)go; @end @protocol ADelegate <NSObject> - (void)doSomeThing; @end
A.m
@implementation A - (void)go { if ([_delegate respondsToSelector:@selector(doSomeThing)]) { [_delegate doSomeThing]; } } @end
B.h
#import "A.h" @interface B : NSObject<ADelegate> @endB.m
@implementation B - (void)doSomeThing { NSLog(@"do something..."); } @end
man.m
#import "A.h" #import "B.h" int main(int argc, const char * argv[]) { @autoreleasepool { A *a = [[A alloc] init]; B *b = [[B alloc] init]; a.delegate = b; [a go]; [a release]; [b release]; return 0; } }
// 输出do something...问题8:写出控制器加载视图的常规调用方法流程。答案:loadViewviewDidLoadviewWillAppearviewWillLayoutSubviewsviewDidLayoutSubviewsviewDidAppear问题9:Objective-C有多重继承么?不是的话,请以示例代码说明。答案:无问题10:请写出下面代码的打印结果(默认在32位机器下运行)。
char a[] = "hello world"; char *p = a; NSLog(@"%ld", sizeof(a)); NSLog(@"%ld", sizeof(p));答案:124如果在64位机器上运行128问题11: 请完成下面的函数
@interface NSCustomArray : NSArray @property (nonatomic, retain) NSArray *targets; - (void)updateTargetsByArray:(NSArray *)newArray; // 将newArray赋值给targets @end
@implementation NSCustomArray - (void)updateTargetsByArray:(NSArray *)newArray { NSArray *tmpArray = [[NSArray alloc] initWithArray:newArray]; // 将tmpArray赋值给targets } @end
答案:无 问题12:检查如下代码是否有问题,如果有问题,正确的写法是?
- (void)setTarget:(NSObject *)target { self.target = target; }答案:无 问题13:指出下面代码的问题
- (void)willEndStepOne:(NSObject *)userInfo { [NSThread detachNewThreadSelector:@selector(doSomeThing:) toTarget:self withObject:userInfo]; } - (void)doSomeThing:(NSObject *)userInfo { int max_loop_times = 999999; for (int i=0; i<max_loop_times; i++) { int randNum = rand(); NSString *tmpString = [NSString stringWithFormat:@"%d", randNum]; NSLog(@"%@", tmpString); } }
答案:无
相关文章推荐
- 面试题分享【不断更新】
- Android学习资料分享(不断更新中)
- Java面试题(不断更新中)
- c/c++笔试题、面试题(一)(不断更新中)
- 各公司技术面试题汇总(Java,.NET,C,C++,SQL,PHP)不断更新中……
- .NET 基础题, 可以做面试题, 不断更新 2011-1
- Java面试题(不断更新中...)
- 历年阿里面试题汇总(2017年不断更新中)
- IOS 面试题(不断更新...)
- 实用批处理分享(不断添加、更新)
- 收集Windows开发常用函数,供大家分享。(不断更新中...)
- C#逻辑面试题汇总【不断更新中】
- 分享我的PSOC3学习经验(不断更新)
- Java相关笔试题以及面试题的链接整理(不断更新)
- MS SQL 面试题(不断更新中)
- Android学习资料分享(不断更新中)
- C#逻辑面试题汇总【不断更新中】
- 历年阿里面试题汇总(2017年不断更新中)
- 分享:Web开发必备手册大集合,不断更新中...
- 【数据库】mysql使用分享(不断更新)