iOS开发——必须知道的几件事(一)

必须知道的几件事(一)

一:启动界面---------

1.程序启动会自动加载叫做Default的图片

  • 1> 3.5inch 非retain屏幕:Default.png
  • 2> 3.5inch retina屏幕:[email protected]
  • 3> 4.0inch retain屏幕: [email protected]
  • 4>4.70inch retain屏幕: [email protected]
  • 5>5.50inch retain屏幕: [email protected](关于3x有机会总结一下)

2.只有程序启动时自动去加载的图片, 才会自动在4inch retina时查找[email protected]

二:控件总结---------

一个控件用肉眼看不见,有哪些可能

  • 1.根本没有创建实例化这个控件
  • 2.没有设置尺寸
  • 3.控件的颜色跟父控件的背景色一样(实际上已经显示了,只不过用肉眼看不见)
  • 4.透明度alpha <= 0.01
  • 5.hidden = YES
  • 6.没有添加到父控件中
  • 7.被其他控件挡住了
  • 8.位置不对
  • 9.父控件发生了以上情况
  • 10.特殊情况
  • * UIImageView没有设置image属性,或者设置的图片名不对
  • * UILabel没有设置文字,或者文字颜色和跟父控件的背景色一样
  • * UITextField没有设置文字,或者没有设置边框样式borderStyle
  • * UIPageControl没有设置总页数,不会显示小圆点
  • * UIButton内部imageView和titleLabel的frame被篡改了,或者imageView和titleLabel没有内容
  • * .....

添加一个控件的建议(调试技巧):

  • 1.最好设置背景色和尺寸
  • 2.控件的颜色尽量不要跟父控件的背景色一样

三:block和weak简单总结

API Reference对__block变量修饰符有如下几处解释:

  • //A powerful feature of blocks is that they can modify
    variables in the same lexical scope. You signal that a block
    can modify a variable using the __block storage type
    modifier. 
    
    //At function level are __block variables. These are mutable
     within the block (and the enclosing scope) and are preserved
     if any referencing block is copied to the heap.
    

大概意思归结出来就是两点:

  • 1.__block对象在block中是可以被修改、重新赋值的。
  • 2.__block对象在block中不会被block强引用一次,从而不会出现循环引用问题。

API Reference对__weak变量修饰符有如下几处解释:

  • __unsafe_unretained typeof(self) weakSelf = self;  //MRC  等同于 __weak UIViewController *weakSelf =self;
  • __weak typeof(self) weakSelf = self; //ARC
  • __weak specifies a reference that does not keep the
    referenced object alive. A weak reference is set to nil when
    there are no strong references to the object.
    

使用了__weak修饰符的对象,作用等同于定义为weak的property。自然不会导致循环引用问题,因为苹果文档已经说的很清楚,当原对象没有任何强引用的时候,弱引用指针也会被设置为nil。

因此,__block__weak修饰符的区别其实是挺明显的:

  • 1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
  • 2.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
  • 3.__block对象可以在block中被重新赋值,__weak不可以。
  • PS:__unsafe_unretained修饰符可以被视为iOS SDK 4.3以前版本的__weak的替代品,不过不会被自动置空为nil。所以尽可能不要使用这个修饰符。
时间: 2024-10-05 04:45:11

iOS开发——必须知道的几件事(一)的相关文章

iOS开发UI篇—UITableview控件基本使

iOS开发UI篇—UITableview控件基本使用 一.一个简单的英雄展示程序 NJHero.h文件代码(字典转模型) #import <Foundation/Foundation.h> @interface NJHero : NSObject /** * 头像 */ @property (nonatomic, copy) NSString *icon; /** * 名称 */ @property (nonatomic, copy) NSString *name; /** * 描述 */ @

iOS开发UI篇—UITableview控件使用小结

iOS开发UI篇—UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; 2.告诉每组一共有多少行 方法:- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSIntege

那些在学习iOS开发前就应该知道的事(part 2)

英文原文:Things I wish I had known before starting iOS development—Part 2 http://www.cocoachina.com/ios/20150611/12111.html 如果你还没读这篇文章的第一部分,请先读完了再来看第二部分. 那些在学习iOS开发前就应该知道的事(part 1):设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了…… 在第一部分中,我讨论了学习iOS开发的一些基本问

iOS开发UI篇—UIPickerView控件简单介绍

iOS开发UI篇—UIPickerView控件简单介绍 一.UIPickerView 控件 1.简单介绍: 2.示例代码 TXViewController.m文件 1 // Created by 鑫 on 14-10-15. 2 3 // Copyright (c) 2014年 梁镋鑫. All rights reserved. 4 5 // 6 7 8 9 #import "TXViewController.h" 10 11 12 13 @interface TXViewContro

【转】 iOS开发UI篇—UIScrollView控件实现图片轮播

原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (w

投身移动开发必须知道的20件事

1.选择你的平台 选择什么样的平台取决于你想做什么以及你的用户是谁.这些平台的最顶层是web.如果你想出售你的应用程序,那么你可能想要将它放在应用商店.如果你需要使用相机或者其他设备的API,那么你可以使用本地方法,或者使用一些封装好了的框架比如AIR/PhoneGap/Titanium. 这里没有明确的答案,你选择什么样的平台取决于很多的事情,因此不妨回顾一下贴在墙上的那些话,也许它们会告诉你答案. 2.甭想快速暴富 很多人对比了当前的应用商店的热潮和19世纪40年代末的加利福尼亚淘金热,正如

聊聊iOS开发中耳机的那点事(监听耳机拔插、耳机线控)-b

如果说一个项目出现的最重大的事故,那无疑就是开发人员使用了不可控的元素. 前言 iOS开发当中有关于视音频播放的开发不在少数,用户时常会使用到一种输出设备,那就是"耳机",这一篇博客写的就是关于耳机的一些开发相关的技术点. 检测耳机是否插入 看到上面的标题的时候一定要注意,这里说的是"检测耳机是否插入",这里只是一次性的检测,不是实时监控耳机的拔插,但是有一些时候,下面的这个方法已经足够满足我们的开发需求了. 首先,我们需要导入AVFoundation.framew

那些在学习iOS开发前就应该知道的事(part 1)

英文原文:Things I wish I had known before starting iOS development—Part 1 http://www.cocoachina.com/ios/20150608/12052.html 设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了.这个界面模仿了Evernote iOS app的风格. 我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用了page view controller和scroll v

iOS开发UI篇—UITableview控件简单介绍

一.基本介绍 在众多移动应?用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,因此支持垂直滚动,?且性能极佳 . UITableview有分组和不分组两种样式,可以在storyboard或者是用代码设置. 二.数据展示 UITableView需要?一个数据源(dataSource)来显示数据UITableView会向数据源查询一共有多少行数据以及每?行显示什么数据等 没有设置数据源