• iOS常见问题(1)


    一、storyboard连线问题

    产生原因:将与storyboard关联的属性删除了,但是storyboard中还保持之前所关联的属性。

    解决:

      1、点击view controller

      2、点击这排最后一个按钮

      3、会出现

      4、发现感叹号。点击感叹号的左边的x,取消关联就不会报错了。

    二、文本框中怎么输入显示类似输入密码时候的东东。

      解决:勾选这个

    三、输入文本的时候,怎么显示右边的X按钮

      1.点击

      2.会显示

       3.选择,表示当编辑的时候,会出出现X。

       效果:

    四、Storyboard连线问题。

      

      报错原因:1.没有实现btnClick这个方法。

      解决方式一:添加这个btnClick这个方法

      解决方式二:

      1.点击view controller

      2.点击这排最后一个按钮

      3.会出现

      4.发现感叹号没,和之前一样,x了它,就哦了。注意点;OC中冒号也算做方法名的一部分喔,记住! 

    五、结构体问题

      

      报错原因:OC语法规定:不允许直接修改某个对象的结构体属性的成员

      _btn 是个对象

      frame是个结构体。

      对象和结构体是不一样的,结构体是C语言中的,里面可以定义许多属性,但是不能定义方法,而对象是即可以定义属性又可以定义方法的,是典型的面向对象语法。

      如何改变对象中结构体属性的成员:

      解决方法一:

    1 // 既然不能直接修改对象中的结构体属性成员
    2     // 先取出结构体
    3     CGRect frame = _btn.frame;
    4     // 修改结构体
    5     frame.origin.y -= 10;
    6     // 将修改后的结构体重新赋值回去
    7     _btn.frame = frame;

      解决方法二:

    1 // 先取出y值
    2     CGFloat y = _btn.frame.origin.y;
    3     // 修改y值
    4     y -= 10;
    5     // 重新设置_btn的y值,其他属性和_btn保持不变
    6 _btn.frame = CGRectMake(_btn.frame.origin.x, y, _btn.frame.size.width,_btn.frame.size.height);

    六、Id问题

      

      报错原因:id类型不能使用点语法

      解决方式一:

    // 利用get方法获取tag值
        NSInteger i = [sender tag];

      解决方式二:

    // 将id强转为UIButton
        UIButton *button = (UIButton *)sender;
        // 就能使用点语法获取tag,编译器很笨的,他只会根据当前类型,去判断是否能使用这个语法。一般强转为对应类型,就能使用对应类型的方法了。
    NSInteger i = button.tag;

    七、如果发现给控件设置transform属性,控件没有任何反应,或者反应了,但是效果不对。

      解决方法:将这个选项取消勾选。

    八、如果想让同一个控件同时即改变位置的移动,又放大。这样设置是无效果的。

    _btn.transform = CGAffineTransformMakeTranslation(0, 100);
    _btn.transform = CGAffineTransformMakeScale(1.2, 1.2);

      这样操作是创建新的transform然后赋值,给按钮的transform,第二次赋值的会把之前赋值的给覆盖,所以会达不到想要的效果。

      解决方法:

    _btn.transform = CGAffineTransformMakeTranslation(0, 100);
        // 在之前的transform情况下,继续添加缩放的形变。
        _btn.transform = CGAffineTransformScale(_btn.transform, 1.2, 1.2);

    九、四舍五入问题。

    1 float i = 1.7;
    2 // 会自动四舍五入,不保留小数
    3 NSLog(@"%0.f",i); // 打印结果2
    4 // 强转类型不会四舍五入
    5 int j = (int)i;
    6 NSLog(@"%d",j); // 打印结果1

    十、优先级问题

    1 int b = 2;
    2 int a = 4 * (b == 2? 1:2);
    3 NSLog(@"%d",a); //打印出4
    4 int a = 4 * b == 2? 1:2;
    5 NSLog(@"%d",a); //打印出2
    6 //由此得出 * 比 == 优先级高,先算*,在算==
  • 相关阅读:
    POJ3468 A Simple Problem with Integers(线段树成段增减,区间求和)
    HDU1698 Just a Hook(线段树成段替换、区间求和,延迟标记的应用)
    HDU2795 Billboard(线段树基础题单节点更新区间查询)
    HDU1754 I Hate It(线段树基础题单节点更新区间查询)
    HDU5410 CRB and His Birthday(完全背包)
    HDU1166 敌兵布阵(线段树基础题单节点更新区间查询)
    cf C. Bombs
    cf B. Resort
    cf B. Color the Fence
    cf B. Little Dima and Equation
  • 原文地址:https://www.cnblogs.com/CJDog/p/5113590.html
Copyright © 2020-2023  润新知