一些 ios 开发的 冷知识 (1)
*写这些只是想要记录一些自己开发过程中,无论是看源码还是查资料看到的些许开发中不常见到的知识,在文章中我并不会详细讲解这些知识点的具体用法,只起一个抛砖引玉的作用,需要具体详细了解的同学可以自行google。
当然我只是芸芸众生中的一个小小的开发者菜鸟,有不对之处还请各位大神批评指证,先行谢过。*
1.关于 window
我们开发过程中一般就只会用到一个window, 就是你创建工程时自动创建的那个,一般是在AppDelegate类里。
其实我们还可以自己创建window对象,并且可以指定这个window的大小,隐藏,级别… 等等各种属性
具体应用:
1.创建一个自定义的AlertView, 我们可以创建一个window ,并将其级别设置为Alert级别,然后将其设为keyWindow 并显示出来就基本OK了。
2.如果你想开发一个sdk插件,想在其它应用里显示你的界面,那我们也可以创建window, 将其级别设为和Application的keyWindow相同的级别,然后需要显示时,我们将自己的window 进行makeKeyAndVisible就可以了,当然不用了想着给把人家window置回去。
备注:makeKeyAndVisible方法会将当前调用这个方法的window置成keyWindow 并将其它的window设置成非keyWindow, 所以我们的整个程序中是只有一个keyWindow的。
2.关于ARC的一些小问题
如果程序不想用ARC:
工程->taggets->build settings->Objective-C Automatic Reference Counting NO
如果部分文件不想用ARC:
工程->taggets->build Phases 可以看到Compile Sources里都是你工程中的类.m文件,双击你所要使用ARC的文件,并输入 -fobjc-arc 就行了,同上,如果想让使用ARC机制的代码不使用ARC机制,只需要输入 -fno-objc-arc
3.ipa包的安装方式
正规安装ipa包,其实不只有appStore一种方式,还有一种东西叫OTA,需要的同学可以自行查看。
4.一个典型的在移植工程的过程中经常出现的问题
Your build settings specify a provisioning profile with the UUID, no provisioning profile was found
当然UUID千奇百怪了,这个问题的大部分原因就是这个工程你是从别的地方拷过来的,而他的profile文件信息又是过时的,所以你的问题就来了.
解决方案:
1.找到项目中的**.xcodeproj文件,点击右键,show package contents(打开包内容)。
2.打开后找到project.pbxproj文件,用文本编辑器打开。其实就是右键,点击open就好了。
3.打开这个文件后,按command+F,在这个文件中查找“PROVISIONING_PROFILE”,找到和这个“
PROVISIONING_PROFILE = “XXXXX”;”PROVISIONING_PROFILE[sdk=iphoneos*]” = “XXXX”
ps: xxxxx和你出错误的UUID相同
4.然后保存文件,重新打开项目