IOS开发问题索引(四)

全系列文章索引:

IOS开发问题索引(一)

IOS开发问题索引(二)

IOS开发问题索引(三)

IOS开发问题索引(四)

IOS开发问题索引(五)

IOS开发问题索引(六)

IOS开发问题索引(七)

IOS开发问题索引(八)

IOS开发问题索引(九)


1 Xcode利用宏区分模拟器与真机

Xcode利用宏定义区分iphone模拟器和真机

http://blog.csdn.net/zypsg/article/details/5524623

#if TARGET_IPHONE_SIMULATOR

  label . text = @"iphoneSimulator" ;

#elif TARGET_OS_IPHONE

label . text = @"iphoneDevice" ;

#endif

2 IOS设备类型判断

iOS判断设备类型

http://blog.sina.com.cn/s/blog_9c3c519b01013gdx.html

如何判断ios设备的类型(iphone,ipod,ipad)

http://blog.csdn.net/tangaowen/article/details/6525992


3 IOS中多版本,多设备类型支持注意事项

IOS中多版本,多设备类型支持注意事项

http://www.cnblogs.com/smileEvday/archive/2013/04/10/SDKCompatility.html


4 ”Avalid provisioning profile for this executable was not found“ 问题

        ”A valid provisioning profile for this executable was not found“ 问题google一下有很多答案,我在这里总结一下我的经验。从描述上可以看到说:对于可执行provisioning profile 没有被找到。所以网上有很多答案是说你provisioning profile没有被找到,需要重新导入之类的。

        但是我碰到的原因是我在Project中将Code Signing Identity中将其设置成了iPhone Develop,但是在Target中的Code Signing Identity并没有自动切换过来,我发现在Target中的Code Signing Identity还是我之前的设的iPhone Distribution,所以看到这里就知道了,iPhone Distribution 的provisioning profile肯定是不能运行的,所以把Target中的Code Signing Identity也设置成iPhone Develop就ok了,这样一切都说的通了,唯一不合理的就是在Project切换Code Signing Identity并编译,但xCode没有自动将编译后的Target设置成和Project中的一致。


5 IOS使用模态框弹出子视图后,子视图大小设置

        IOS SDK内建支持模态窗口式弹出方式(利用presentModalViewController方法),原理是将子视图包含在一个模态视图中,但是不足之处在于此模态视图大小是固定的,为540*620,若子视图大小小于这个,周围就会出现灰色边缘。

        要解决此问题,在执行完presentModalViewController方法之后,再次手动设置模态窗口大小:subVC.view.superView.frame

6 UIImageView加圆角

圖片要加圓角的做法在 iphone 3.0 變得很容易

imageThumbnail.image=[UIImageimageWithContentsOfFile:strPath];

imageThumbnail.layer.masksToBounds=YES;

imageThumbnail.layer.cornerRadius=10.0;

imageThumbnail.layer.borderWidth=1.0;

//边框阴影宽度

imageThumbnail.layer.borderColor=[[UIColorgrayColor] CGColor];

透過以上的程式碼就可以達到目的, 真是方便很多Orz. 請記得要import 


7 dequeueResuableCellWithIdentifier原理

dequeueReusableCellWithIdentifier原理 

http://ronglei0324.blog.163.com/blog/static/67633223201312631558212/


8 auto layout on ios Versions prior to 6.0

Auto Layout on iOS Versions prior to 6.0

http://blog.csdn.net/topbar/article/details/12345511

9 Xcode模拟器simulators7,6,5下载地址及安装

1.下载链接

iOS7.0模拟器:

http://devimages.apple.com/downloads/xcode/simulators/ios_7_0_simulator.dmg

iOS6.1模拟器:

http://devimages.apple.com/downloads/xcode/simulators/ios_6_1_simulator.dmg

iOS6.0模拟器:

http://devimages.apple.com/downloads/xcode/simulators/iphone_6_0_iphonesimulatorsdk6_0.dmg

iOS5.1模拟器:

http://devimages.apple.com/downloads/xcode/simulators/iphone_5.1_iphonesimulatorsdk5_1.dmg

iOS5.0模拟器:

http://devimages.apple.com/downloads/xcode/simulators/ios_50_simulator-1.dmg

iOS 7 doc set 

http://devimages.apple.com/docsets/20130918/091-9917-A.dmg 

xcode 5 doc set 

http://devimages.apple.com/docsets/20130918/091-9915-A.dmg  

2. iOS模拟器的安装

2.1常规安装

Xcode

        默认支持的iOS模拟器的在线安装,启动Xcode5.1后打开菜单Xcode->Preferences...再点击Downloads就可以看到Xcode默认支持的iOS各版本模拟器,如果还没有安装,只需要点击后面的下载箭头标识,Xcode就会自动下载和安装相应的组件,因为需要下载和安装,可能需要等待较长时间才能完成下载和安装。另外,下载的临时文件存放在/Users//Library/Caches/com.apple.dt.Xcode/Downloads目录中。

2.2第三方下载器下载后安装但是往往用xcode自动下载模拟器会非常慢 或者经过很长一段时间后提示Failed to mount file 什么的这时候 就可以找到下载链接用下载器进行下载,进入目录

/Users//Library/Caches/com.apple.dt.Xcode/Downloads  将5dba03a4b33ac2c0d7a72e94475011c25eb06a73.dvtdownloadableindex 类似文件重命名成.plist后缀文件(com.apple.dt.Xcode 要右键显示包内容进入,不要双击打开)找到downloadables, 某个item中 寻找 dmg  source下载地址可以找到simulator dmg明显字样的链接 下载即可(文章开头的链接就是取自plist文件)

2.3下载后的dmg安装.这里主要以iOS7.0模拟器的离线安装为例进行说明,其他版本以此类推:

        下载ios_7_0_simulator.dmg后打开dmg文件,可以看到安装包iPhoneSimulatorSDK7_0.pkg,使用安装器安装此安装包,默认会安装在所选分区的/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk目录下,完全退出Xcode后将刚才安装的iPhoneSimulator7.0.sdk整个目录复制或移动到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs目录下即可,(Xcode.app右键可以"显示包内容“)重新启动Xcode一般就可以使用相应版本的模拟器进行开发和调试了。

        离线安装还有一个简单的办法就是将以前安装过的旧版本的Xcode如Xcode5.0.2下面已经安装好了的iOS模拟器直接复制过来使用,目录位置都一样,都是在Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs里面。这样就不用再下载离线安装包了。

10 iOS:忘记密码或输入错误密码后设备停用

        当您在设置密码确保安全使用iPhone、iPad或iPod touch后输入了错误的密码,可能会看到设备“已停用”的消息。了解如果您已忘记或不记得自己的密码或者设备显示“已停用”的消息时应如何处理。

        如果您输入错误密码六次或以上,将看到以下任一消息:

§ iPhone 已停用

§ iPad 已停用

§ iPod touch 已停用

        如果您之前将设备与 iTunes 同步过,您或许能够通过恢复设备来重设密码:

    1. 将设备连接到通常与之同步的电脑,然后打开 iTunes。注:如果 iTunes 提示您输入密码,请尝试已经与其同步的另一台电脑。否则,请前往下文“如果您从未将设备与 iTunes 同步,或没有权限访问电脑”部分。

    2. 如果设备仍处于停用状态,或者 iTunes 没有自动同步您的设备,请将设备与 iTunes 同步。

    3. 备份和同步完成后,请恢复您的设备。

    4. 当 iOS 设置助理要求设置设备时,请选取“从iTunes 备份恢复”。

    5. 在 iTunes 中选择您的设备,然后选取最近的设备备份。

        如果您从未将设备与iTunes同步,或没有权限访问电脑,或者如果您看到以下警告之一,则需要抹掉设备上的数据:

        “iTunes 未能连接到 [设备],因为它已被使用口令锁定了。您必须在 [设备] 上输入口令,然后才能与 iTunes 配合使用它。”

        “您尚未选择让 [设备] 信任此电脑”

        如果您已启用“查找我的 iPhone”,则可以使用“远程擦除”来抹掉设备上的内容。如果您已使用 iCloud 来备份,或许能在抹掉设备内容后恢复最新的备份并重设密码。

        或者,将设备置于恢复模式并将其恢复以抹掉设备上的内容:

    1. 断开 USB 线缆与设备的连接,但保持线缆的另一端与电脑的 USB 端口相连。

    2. 关闭设备:按住睡眠/唤醒按钮数秒,直到出现红色滑块,然后滑动该滑块。等待设备关闭。

    3. 按住主屏幕按钮,同时将 USB 线缆重新连接到设备。设备应会打开。

    4. 继续按住主屏幕按钮,直到出现“连接iTunes”屏幕。

    5.  iTunes 将提醒您,其检测到一个处于恢复模式的设备。点按“好”,然后恢复设备。

其他信息

    了解有关设置和使用密码的信息。

    您可以将设备配置为在连续十次输入错误密码后自动抹掉。此设置在默认情况下未启用。可通过轻按“设置”>“密码锁定”来打开此设置。

11 block避免循环引用

        由于我们很多行为会导致Block的copy,而当Block被copy时,会对block中用到的对象产生强引用(ARC下)或者引用计数加一(non-ARC下)。

如果遇到这种情况:

@property(nonatomic, readwrite, copy) completionBlock  completionBlock;

//========================================

self.completionBlock = ^ {

        if  (self.success) {

  self.success(self.responseData);

        }

    }

};

    对象有一个Block属性,然而这个Block属性中又引用了对象的其他成员变量,那么就会对这个变量本身产生强应用,那么变量本身和他自己的Block属性就形成了循环引用。在ARC下需要修改成这样:

@property(nonatomic, readwrite, copy) completionBlock  completionBlock;

//========================================

__weak typeof(self) weakSelf = self;

self.completionBlock = ^ {

    if  (weakSelf.success) {

  weakSelf.success(weakSelf.responseData);

    }

};

        也就是生成一个对自身对象的弱引用,如果是倒霉催的项目还需要支持iOS4.3,就用__unsafe_unretained替代__weak。如果是non-ARC环境下就将__weak替换为__block即可。non-ARC情况下,__block变量的含义是在Block中引入一个新的结构体成员变量指向这个__block变量,那么__block typeof(self) weakSelf = self;就表示Block别再对self对象retain啦,这就打破了循环引用。

Block的引用循环问题(ARC& non-ARC)

http://www.hrchen.com/2013/06/retain-cycle-in-block/

a-look-inside-blocks-episode-1

http://www.galloway.me.uk/2012/10/a-look-inside-blocks-episode-1/

a-look-inside-blocks-episode-2

http://www.galloway.me.uk/2012/10/a-look-inside-blocks-episode-2/

a-look-inside-blocks-episode-3

http://www.galloway.me.uk/2013/05/a-look-inside-blocks-episode-3-block-copy/

12 runloop

(good)Objective-C之run loop详解

http://blog.csdn.net/wzzvictory/article/details/9237973

(good)iOS多线程编程指南(三)Run Loop

http://www.dreamingwish.com/dream-2012/ios-multithread-program-runloop-the.html

13 iOS多线程开发指南

iOS多线程开发指南

http://www.dreamingwish.com/dream-category/toturial/ios-mulit-thread-program-guide

iOS多线程编程指南(一)关于多线程编程

http://www.dreamingwish.com/dream-2012/ios-multi-threaded-programming-a-multi-threaded-programming.html

iOS多线程编程指南(二)线程管理

http://www.dreamingwish.com/dream-2012/ios-multi-threaded-programming-the-thread-management.html

iOS多线程编程指南(三)RunLoop

http://www.dreamingwish.com/dream-2012/ios-multithread-program-runloop-the.html

iOS多线程编程指南(四)线程同步

http://www.dreamingwish.com/dream-2012/the-ios-multithreaded-programming-guide-4-thread-synchronization.html

14 GCD(Grand Central Dispatch)教程

发布者:Seven's - 2012/03/03 - 分类:梦印象

        Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且它不是Cocoa框架的一部分。

入门教程:

GCD介绍(一): 基本概念和Dispatch Queue

GCD介绍(二): 多核心的性能

GCD介绍(三): Dispatch Sources

GCD介绍(四): 完结

进阶:

GCD实战一:使用串行队列实现简单的预加载

GCD实战二:IO资源竞争

15 Block教程系列

发布者:Seven's - 2013/04/22 - 分类:梦印象

ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发。

讨论范围:block的使用,内存管理,内部实现。

不包含的内容:gc arc下的block内存,block在c++中的使用。

Block介绍(一)基础

Block介绍(二)内存管理与其他特性

block介绍(三)揭开神秘面纱(上)

block介绍(四)揭开神秘面纱(下)

16 iOS开发 git github 初学+进阶

iOS开发git github初学+进阶

http://guxiaojje.blog.163.com/blog/static/140942291201272110343064/

17 iPhone应用程序的启动过程

iPhone应用程序的启动过程

http://mobile.51cto.com/iphone-284474.htm

18 使用静态IP无法打开部分网页的解决办法

        使用静态IP无法打开部分网页的解决办法,手动设置DNS,并且备用DNS设置为114.114.114.114

19 js枚举类型

js枚举类型定义:

    方法1:

var DataType = {String1:value1,String2:value2 }

     方法2:

var DataType = { } ;

DataType.String1=value1;

DataType.String2=value2;

    遍历枚举类型:

for(var i in DataType ){

DataType[i]; //获取value

i;//下标

 }

20 当前无线网络不能勾选“自动发现代理”,不然无法Safari无法联网

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 用到的组件 1、通过CocoaPods安装 2、第三方类库安装 3、第三方服务 友盟社会化分享组件 友盟用户反馈 ...
    SunnyLeong阅读 14,598评论 1 180
  • 偶然发现,用过一些,分享给大家 { "XcodeChaJian": [ { "Dname":"...
    MonkeyHan阅读 6,451评论 0 4
  • 又是一年开学季 今年与往年相比 另有感慨 可能我还沉浸在高中暑假补课的悲伤里 不觉感到惊讶 这么晚了怎么还没开学呢...
    沛库阅读 419评论 0 1
  • 逼仄的天空 泼了墨似的暗 至少从笼子里看 是这样 被剪去华丽羽翼的鸟 扯着嘶哑的喉咙歌唱 死去吧 毁灭吧 为什么活...
    潋兮阅读 208评论 0 1
  • 我在原地等待 对面的爬山虎不必结出红果子 也可以让一面冰冷的墙,释放出热情 正如一群枫叶,蔓延后点燃群山 我在原地...
    一团菌阅读 243评论 3 12