zoukankan      html  css  js  c++  java
  • ios小功能

    1.开 发过程中,我们通过http请求,后台返回json数据,而有时数据里某一字段的值为null~,然后我们把此值赋值给 NSArray,NSdictionary,或是NSString,然后我们会判断此值为null时,所做的处理,而通常惯性思维判断时我们都会 写:if(dict == nil)或是if(dict == Nil)或是if(dict == NULL)再或是if(dict isEqual nil),我们发现,都不好用,根本没有起到判断的作用~后来我才发现,原来不能这样来判断。

    简单点说,就是当字典,数组为null时,后台打印的输出结果是这样:


    然后,我们需要在代码判断时利用[NSNull null]来判断,具体如:


    isEqual:[NSNull null] 就搞定了,nsarray也是同样的道理。

    2.

    控制台打印:str=(null) 代表着 字符串或数组或字典是一个空指针,(而非空字符串)判断的时候,直接用:

    if(str == nil)就可以了。如下图所示:



    而控制台打印:str =  <null>,代表着这是一个空字符串,赋值为空,指针是存在的,只是内容为空,这种判断需要使用:

    if(str is equal [NSNull null ]) ,因为在ios上,内容为空不能简单的判断str==null(null 在ios上得用[NSNull null])


    一般这种情况是,服务器那边是null,直接返回@"null"的字符串,这样在ios这边不好判断,最好跟后台沟通,如果遇到null值,返回@"",好做判断


    3.   使用了storyboard,运行程序模拟器显示黑屏,这是由于,操作不当,获取点击了例如  navigationViewController属性种的in init ViewController选项,然后重置了当前进入程序后的首界面,解决办法就是选择入口界面,属性种重新勾选此选项。

     

    StoryboardApp[8593:207] Failed to instantiate the default view controller for UIMainStoryboardFile 'MainStoryboard' - perhaps the designated entry point is not set?

    StoryBoard中没有一个view controller设置了Initial Scene。您需要选择一个view conroller作为story board的第一个界面:

     

    4.如何在项目用代码打开AppStore软件(也就是访问appstore)


    [java] view plaincopy
     
    1.           
    2. //        int m_appleID = 576337094; //        NSString *str = [NSString stringWithFormat: //                                 @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d", //                                 m_appleID ];   
    3.         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];  

    把以上代码直接拷贝到想要实现点击跳转的操作方法内就可以了,通过appID,随意可以通过appstore打开应用,直接用url就可以链接到了。很简单,一般都用在检查更新的时候。

     

    5,如何代码实现点击http://www.kaka.com或400-800-400或message实现跳转safari,phone或message?

    只需要在相应的代码中写入:

    1、调用 电话phone
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://4008008288"]];

    2、调用自带 浏览器 safari
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.abt.com"]];

    3、调用 自带mail
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@abt.com"]];

    4、调用 SMS
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];

    5,跳转到系统设置相关界面

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];


    其中,发短信,发Email的功能只能填写要发送的地址或号码,无法初始化发送内容,如果想实现内容的话,还需要更复杂一些,实现其各自的委托方法。

    若需要传递内容可以做如下操作:
    加入:MessageUI.framework
     
    #import <MessageUI/MFMessageComposeViewController.h>
     
    实现代理:MFMessageComposeViewControllerDelegate

     

    6,如何使屏幕一直保持唤醒状态?(就是不自动黑屏)


    比如,如果我们做一个播放视频的功能时,想在播放的时候,不会自动进入屏保(黑屏)

    只要在代码里加入这一行:

     

    [java] view plaincopy
     
    1. [[UIApplication sharedApplication] setIdleTimerDisabled:YES];  

    7.如何隐藏UINavigationBar


    有的时候,我们的视图使用了Navigation Controller ,但是主界面(rootviewcontroller)或其它push进入的界面 想使用一个全屏的view,就是说,不显示顶部的navigationBar,这个时候,就需要我们来隐藏了。

     

    //隐藏NavigationBar

    -(void) viewWillAppear:(BOOL)animated{

        

        [self.navigationControllersetNavigationBarHidden:YESanimated:YES]; //设置隐藏

        [super viewWillAppear:animated];

    }

    -(void) viewWillDisappear:(BOOL)animated{


        [self.navigationControllersetNavigationBarHidden:NOanimated:YES];

        [super viewWillDisappear:animated];

            

    }

    8,点击UIButton 无法产生触摸事件

     

    如果在UIImageView中添加了一个按钮,你会发现在默认情况下这个按钮是无法被点击的,需要设置UIImageView的userInteractionEnabled为YES:

    imageView.userInteractionEnabled = YES;

    设置为YES后,UIImageView内部的按钮就可以被点击了

    9.如何获取手机硬件信息?

    通过使用UIDevice: 

     

     

     

    [[UIDevice currentDevice] systemName];
    [[UIDevice currentDevice] systemVersion];//os version
    [[UIDevice currentDevice] uniqueIdentifier];
    [[UIDevice currentDevice] model];
    [[UIDevice currentDevice] name];

     

    真机上结果:
    System Name: iPhone OS
    System Version: 4.2.1
    Unique ID: 9b5ded78d5fa0ac96250f8b4af0e46f40b96ea6d
    Model: iPhone
    Name: “wwk”的 iPhone

     

    模拟器上结果:

     

    System Name: iPhone OS
    System Version: 4.2
    Unique ID: 21FFE0FF-429B-5D0B-96D2-EADCA3203260
    Model: iPhone Simulator
    Name: iPhone Simulator

     

    uniqueIdentifier:iPhone通过,向几个硬件标识符和设备序列号应用内部散列算法,而生成这一标识符。

     

    http://blog.csdn.net/qiwancong/article/details/7914923 参考

     

  • 相关阅读:
    动态规划_leetcode70
    动态规划_leetcode64
    动态规划_leetcode63
    PHP处理base64编码字符串
    PHP解决h5页面跨域
    PHP对象转数组
    jQuery 正则
    mysql重置密码
    yii框架学习(获取插入后的id)
    nginx 之 root和alias
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/4982890.html
Copyright © 2011-2022 走看看