UI考试题

选择题(共25题,每题3分)

1、下面对UIView、UIWindow和CALayer理解错误的是:( C )

            A、UIView继承于UIResponder

            B、UIResponder继承于NSObject,UIView可以响应用户事件。

            C、UIResponder继承与NSObject,CALayer继承于NSObject,CALayer可以响应事件。

            D、UIView是用来显示内容的,可以处理用户事件,CALayer是用来绘制内容的,依赖与UIView来进行显示

2、以下对多线程开发的理解错误的是:( B )

            A、发挥多核处理器的优势,并发执行让系统运行的更快、更流畅,用户体验更好

            B、多线程程序中,一个进程包含2个以上的线程(含2个)

            C、大量的线程降低代码的可读性,但不需要更多的内存空间

            D、当多个线程对同一个资源出现争夺的时候要注意线程安全的问题

3、以下不属于ios中实现多线程的方法是:( D )

            A、NSThread

            B、NSOperationQueue

            C、Grand Central Dispatch(GCD)

            D、NSURLRequest

4、对于UIScrollViewController,scrollView将开始降速时,执行的方法是:( D )

            A、-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView;{ }

            B、-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;{ }

            C、-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView;{ }

            D、-(void)scrollViewWillBeginDecelerating: 

5、以下对于UIScrollView的属性,说法错误的是:( D )

            A、bounces 控制控件遇到边框是否反弹

            B、pagingEnabled 控制控件是否整页翻动

            C、scrollEnabled 控制控件是否能滚动

            D、contentInset 滚动范围大小  //视图在scrollView中的位置

6、实现一个生成Student实例对象的便利构造器的正确写法是:( A )

            A、+(id)studentWithName:(NSString *)newName andAge:(int)newAge

     {

       Student *stu = [[[Student alloc]initWithName:newName andAge:newAge] autorelease];

       return stu;

     }

            B、 -(id)studentWithName:(NSString *)newName andAge:(int)newAge

     {

       Student *stu = [[Student alloc]initWithName:newName andAge:newAge];

       return [stu autorelease];

     }

            C、 -(void)studentWithName:(NSString *)newName andAge:(int)newAge

     {

       Student *stu = [[Student alloc] initWithName:newNameandAge:newAge];

       return [stu autorelease];

     }

            D、 +(void)studentWithName:(NSString *)newName andAge:(int)newAge

     {

       Student *stu = [[Student alloc]initWithName:newName andAge:newAge];

       return [stu autorelease];

     }

7、当应用程序将要进入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了,此时会先执行以下哪个方法:( D )

            A、-(void)applicationDidBecomeActive:(UIApplication *)application{ }

            B、-(void)applicationDidEnterBackground:(UIApplication *)application{ }

            C、-(void)applicationWillTerminate:(UIApplication *)application{ }

            D、-(void)applicationWillResignActive:(UIApplication *)application{ }

8、对于UICollectionViewController,实现定义每个元素的margin(边缘 上-左-下-右) 的方法是:( B )

            A、-(CGSize)collectionView:(UICollectionView *)collectionView

      layout:(UICollectionViewLayout*)collectionViewLayoutsizeForItemAtIndexPath:(NSIndexPath *)indexPath

     { 

      return CGSizeMake(); 

     }

            B、-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView

      layout:(UICollectionViewLayout*)collectionViewLayoutinsetForSectionAtIndex:(NSInteger)section

     { 

      return UIEdgeInsetsMake(); 

     }

            C、-(CGSize)collectionView:(UICollectionView *)collectionView

      layout:(UICollectionViewLayout*)collectionViewLayoutreferenceSizeForHeaderInSection:(NSInteger)section

     {     

      return CGSizeMake(); 

     }

            D、-(CGSize)collectionView:(UICollectionView *)collectionView

      layout:(UICollectionViewLayout*)collectionViewLayoutreferenceSizeForFooterInSection:(NSInteger)section

     { 

      return CGSizeMake(); 

     }

9、关于OC内存管理方面说法错误的是:( B )

            A、OC中的内存管理采用引用计数机制

            B、autorelease pool 是OC中一种自动的垃圾回收机制

            C、alloc、new或copy来创建一个对象,那么你必须调用release或autorelease

            D、OC的内存管理机制本质上还是C语言中的手动管理方式,只不过稍加了一些自动方法

10、应用程序启动顺序正确的是:( B )

            ①在UIApplication代理实例中重写启动方法,设置第一个ViewController

            ②程序入口main函数创建UIApplication实例和UIApplication代理实例

            ③在第一个ViewController中添加控件,实现对应的程序界面。

            A、①②③

            B、②①③

            C、①③②

            D、③①②

11、以下哪个控件不是继承于UIControl:( D )

            A、UIButton

            B、UITextField

            C、UISlider

            D、UITextView

12、获取tableview正在window上显示的cell的indexPath方法是:( B )

            A、- (UITableViewCell*)cellForRowAtIndexPath:(NSIndexPath *)indexPath;

            B、- (NSArray*)indexPathsForVisibleRows;

            C、- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

            D、- (void)tableView:(UITableView*)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath;

13、实现一个singleton的类,下面正确的是:( A )

            A、static LOSingleton *shareInstance;

     +( LOSingleton *)sharedInstance{

      @synchronized(self){

       if (shareInstance == nil) {

        shareInstance = [[self alloc] init];

       }

      }

      return shareInstance;

     }

           

            B、static LOSingleton *shareInstance;

     -( LOSingleton *)sharedInstance{

      @synchronized(self){

       if (shareInstance == nil) {

        shareInstance = [[self alloc] init];

       }

      }

      return shareInstance;

     }

           

            C、+ (LOSingleton *)sharedInstance

     {

      LOSingleton *sharedInstance = nil ;

      static dispatch_once_t onceToken; 

      dispatch_once (& onceToken, ^ { 

       sharedInstance = [[self alloc] init];

      });

      return sharedInstance;

     }

           

            D、- (LOSingleton *)sharedInstance

     {

      static LOSingleton *sharedInstance = nil ;

      static dispatch_once_t onceToken; 

      dispatch_once (& onceToken, ^ { 

       sharedInstance = [[self alloc] init];

      });

      return sharedInstance;

     }

14、下面关于深拷贝与浅拷贝理解正确的是:( A )

            A、深拷贝拷贝的是内容,浅拷贝拷贝的是指针。

            B、深拷贝和浅拷贝最大的区别就是子类对象的地址是否改变。

            C、深拷贝是对对象本身复制,但是不对对象的属性进行复制。

            D、如果子类对象的地址改变那么就是深拷贝。

15、当程序从后台将要重新回到前台的时候,会先执行以下哪个方法:( B )

            A、-(void)applicationDidFinishLaunching:(UIApplication*)application{ }

            B、- (void)applicationWillEnterForeground:(UIApplication*)application{ }

            C、-(void)applicationDidBecomeActive:(UIApplication *)application{ }

            D、 -(void)applicationWillTerminate:(UIApplication *)application{ }

16、UITableView重用机制中,会将重用的cell放到哪种类型的集合中。( B )

            A、NSMutableArray

            B、NSMutableSet

            C、NSDictionary

            D、NSMutableDictionary

17、对于UISearchBar,要实现实时搜索(即搜索内容实时发生变化时),会执行以下哪个方法:( C )

            A、-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;

            B、-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;

            C、- (void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString *)searchText{ }

            D、-(void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar{ }

18、对于UISegmentedControl,实现在指定索引插入一个选项并设置图片的方法是:( B )

            A、[segmentedControl setImage:[UIImageimageNamed:@"btn_jyy.png"] forSegmentAtIndex:3];

            B、[segmentedControlinsertSegmentWithImage:[UIImage imageNamed:@"mei.png"] atIndex:2animated:NO];

            C、[segmentedControlinsertSegmentWithTitle:@"insert" atIndex:3 animated:NO];

            D、[[UIImageViewalloc]initWithImage:[segmentedControlimageForSegmentAtIndex:1]];

19、对于UILabel,设置单词折行方式的属性是:( B )

            A、textAlignment

            B、lineBreakMode

            C、numberOfLines

            D、sizeToFit

20、以下关于导航栏外观属性对应的解释错误的是:( D )

            A、barStyle bar的样式

            B、translucent bar的透明度

            C、backgroundImage bar的背景图片

            D、barTintColor bar上控件的颜色      //改变导航栏的颜色

 21、很多内置类如UITableViewController的delegate属性都是assign而不是retain,这是为了:( D )

            A、防止造成内存泄露

            B、防止出现野指针

            C、防止出现过度释放

            D、防止循环引用

22、以下的代码会出现什么问题:( B )

            @implementationPerson

            -(void)setAge:(int)newAge {

              self.age= newAge;

            }

            @end

            A、会造成循环引用

            B、会造成死循环

            C、会出现内存泄露

            D、会出现野指针

 23、以下关于视图的frame与bounds的理解错误的是:( A )

            A、bounds是指这个view在window坐标系的坐标和大小

            B、frame指的是这个view在它superview的坐标系的坐标和大小

            C、frame和bounds是UIView中的两个属性(property)。

            D、一个是以自身左上角的店为原点的坐标系,一个是以屏幕左上角的点为原点的坐标系。

24、在MVC框架中,M与C通讯,通常使用什么方式?( A)  //M与C K与C都是通过KVO方式通讯

            A、KVO与通知

            B、协议-代理

            C、类目

            D、属性

 25、以下不属于iOS本地数据存储的方式是:( D )

            A、NSUserDefaults     // NSUserDefaults:用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在.NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、 NSDictionary。如果要存储其他类型,则需要转换为前面的类型,才能用NSUserDefaults存储。

            B、Write写入方式   //Write写入方式:永久保存在磁盘中。

            C、SQLite数据库   //采用SQLite数据库来存储数据。

            D、BLOCK方式    //错误,应该是NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提 供encodeWithCoder:和initWithCoder:方法。前?一个方法告诉系统怎么对对象进行编码,而后?一个方法则是告诉系统怎 么对对象进行解码。例如对Possession对象归档保存。

 

※ 判断题(共5题,每题5分)

1、[segmentedControltitleForSegmentAtIndex: ]表示指定索引文字的选项。( T )

            正确

            错误

2、[textFieldresignFirstResponder]; 表示让文本输入框成为第一响应者, 弹出键盘进入编辑模式。( F )

            正确

            错误

 3、[self.viewpopToViewController: animated: YES];表示弹出一个视图控制器,到指定视图控制器上。( F )

            正确

            错误

 4、numberOfTapsRequired这个方法能获取到的是有几只手指点击。( F )

            正确

            错误

5、UISlider、UISwitch、UITextField这些类都继承于UIControl这个类。( T )

            正确

            错误

 

你可能感兴趣的:(UI,考试题)