美文网首页iOS_bookmarkiOS开发笔记
开发中遇到的问题和解决方法(持续更新)

开发中遇到的问题和解决方法(持续更新)

作者: 榕樹頭 | 来源:发表于2016-05-25 18:13 被阅读2206次

    1、pod安装淘宝镜像失败:Error fetching http://ruby.taobao.org/: bad response Not Found 404 (http://r

    解决:http 改成 https

    2、pod install 失败:[!] Unable to satisfy the following requirements:- `Masonry` required by `Podfile`Specs satisfying the `Masonry` dependency were found, but they required a higher minimum deployment target.

    解决:podfile platform :ios,’8.0’ 版本号不能少

    3、问题:cocoapods 导入的第三方库,import“”时没有提示

    解决:target - build setting - search paths - user header search  添加:$(PODS_ROOT)  选择 recursive 

    4、配置pch文件,新建了.pch文件之后,在build setting中:

    (1) 将Precompile Prefix Header设置成Yes;

    (2). 在Prefix Header中写入它的绝对路径。Re:绝对路径哟。我开始放的是相对路径$(SRCROOT)/pch文件名.pch。结果发现项目还是报错。

    获得绝对路径的技巧: 教一个方法:打开终端。将项目中的.pch文件拖入到终端中即可。然后复制路径--填写到项目。

    5、NSDocumentDirectory 是指程序中对应的Documents路径,而NSDocumentionDirectory对应于程序中的Library/Documentation路径,这个路径是没有读写权限的,所以看不到文件生成。

    6、stringByAppendingPathComponent 和 stringByAppendingString 的区别:

    前者是拼接成一个路径,后者是添加为后缀

    例子:NSString *sqlPath = [path stringByAppendingString:@"test.sqlite"];

    /Users/rong/Library/Developer/CoreSimulator/Devices/80F6DE9C-E48C-487C-98E3-1753B333FFB7/data/Containers/Data/Application/B4EF58D8-699A-4018-8CD8-8D1A071E85E2/Documentstest.sqlite

    NSString *sqlPath = [path stringByAppendingPathComponent:@"test.sqlite"];

    /Users/rong/Library/Developer/CoreSimulator/Devices/80F6DE9C-E48C-487C-98E3-1753B333FFB7/data/Containers/Data/Application/8989D025-94F3-40B6-B6D6-D2ED5300FBB9/Documents/test.sqlite

    7、const 和 #define的区别(参考一下链接):http://mp.weixin.qq.com/s__biz=MzAxMzQ3NzQ3Nw==&mid=406399975&idx=2&sn=1119af5fa2583798a435b839da372e03&scene=23&srcid=0324JrMaMfVzsgwoSbvlj8xm#rd

    8、const 和 static的区别:对于C/C++语言来讲,const就是只读的意思,只在声明中使用;static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.static const 应该就是上面两者的合集.

    9、socket TCP 三次握手 发起链接请求,四次握手结束链接请求

    10、关于HTTPS:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file在Info.plist文件中添加NSAppTransportSecurityNSAllowsArbitraryLoads

    11、要求:将桌面下名为Sample_iOS_480x224.mp4的视屏文件分割为m3u8格式的分段媒体文件 操作:       

    (1)下载mediafilesegmenter的工具包 ,我所用的Mac OS 10.6.8中并没有包含 mediafilesegmenter 工具,因此需要去苹果的开发网站下载包含此命令的工具包 ,访问http://connect.apple.com,并搜索mediafilesegmenter,下载streamingtools_beta138.dmg  ,下载完成后双击安装即可       

    (2)在终端窗口中输入如下命令,执行即可 

     mediafilesegmenter -B ItanoPart -i SamplePartList.m3u8 -t 10  -f /Users/YourName/Desktop/movie /Users/YourName/Desktop/Sample_iOS_480x224.mp4           

     命令中各参数解释如下:              

     -B: 各分段文件名称     

     -i:  分段列表文件名称             

      -t:  各分段时长         

      -f:  输出文件路径              

     /Users/YourName/Desktop/Sample_iOS_480x224.mp4 源文件路径

    这样很简单就可以实现本地媒体文件的分割,更多的参数说明,可以参见工具包的联机说明文档(在终端窗口中输入 man mediafilesegmenter)    

     12、流切片(参考链接):  http://blog.csdn.net/sakulafly/article/details/48367871        

    13、Could not find Developer Disk Imagexcode版本不支持手机iOS版本,升级Xcode来解决

    14、Linux显示行号:使用的命令为:在末行方式下输入命令::set number

    不能保存只读文件的解决方法:w! sudo tee &

    15、objective-c 中随机数的产生方法 3种:arc4random() 、random()、CCRANDOM_0_1() 

    1、随机数的使用    

     1)、arc4random() 比较精确不需要生成随即种子      

     使用方法 :  通过arc4random() 获取0到x-1之间的整数的代码如下:

     int value = arc4random() % x;                

      获取1到x之间的整数的代码如下:                

     int value = (arc4random() % x) + 1;       

     2)、CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1]      

    使用方法: float random = CCRANDOM_0_1() * 5; //[0,5]  CCRANDOM_0_1() 取值范围是[0,1]        

    3)、random() 需要初始化时设置种子,使用方法:               

     srandom((unsigned int)time(time_t *)NULL); //初始化时,设置下种子就好了。

    16、layoutSubviews在以下情况下会被调用:

    (1)init初始化不会触发layoutSubviews

    (2)addSubview会触发layoutSubviews

    (3)设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化(4)滚动一个UIScrollView会触发layoutSubviews

    (5)旋转Screen会触发父UIView上的layoutSubviews事件

    (6)改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件

    17、NSRunLoop是IOS消息机制的处理(参考链接:http://my.oschina.net/u/816791/blog/3875681).

     在timer与table同时执行情况,当拖动table时,runloop进入UITrackingRunLoopModes模式下,不会处理定时事件,此时timer不能处理,所以此时将timer加入到NSRunLoopCommonModes模式(addTimer forMode) Run Loop什么情况下使用:

    a. 使用ports 或 input sources 和其他线程通信  // 不了解 

    b. 在线程中使用timers   // 如果不启动run loop,timer的事件是不会响应的  

    c. 在Cocoa 应用中使用performSelector...方法  // 应该是performSelector...这种方法会启动一个线程并启动run loop吧 

    d. 让线程执行一个周期性的任务  // 如果不启动run loop, 线程跑完就可能被系统释放了  注:timer的创建和释放必须在同一线程中。 [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];  此方法会retain timer对象的引用计数 

    18、使用断言NSAssert()调试程序错误#define NSAssert(condition, desc)condition是条件表达式,值为YES或NO;desc为异常描述,通常为NSString。当conditon为YES时程序继续运行,为NO时,则抛出带有desc描述的异常信息。NSAssert()可以出现在程序的任何一个位置。

    19、谷歌浏览器上谷歌的方法: chrome://flags/  QUIC

    20、pod update --verbose --no-repo-update

    21、Duplicate Symbol链接错的原因总结和解决方法http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=15809

    22、显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles YES

    不显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles NO

    命令运行之后需要重新加载Finder:快捷键option+command+esc,选中Finder,重新启动即可

    23、touch README.md //新建一个记录提交操作的文档

    git init //初始化本地仓库

    git add README.md //添加

    git commit -m "first commit"//提交到要地仓库,并写一些注释git remote add origin 

    git@github.com:youname/Test.git //连接远程仓库并建了一个名叫:origin的别名git 

    push -u origin master //将本地仓库的东西提交到地址是origin的地址,master分支下!

    (显示GIF图)[image](http://github.com/rongshutou/iOS-Animation/raw/master/animation.gif)  

    24、  ld: -pie can only be used when targeting iOS 4.2 or later    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    25、The certificate used to sign "Photo_demo" has either expired or has been revoked. An updated certificate is required to sign and install the application

    相关文章

      网友评论

        本文标题:开发中遇到的问题和解决方法(持续更新)

        本文链接:https://www.haomeiwen.com/subject/rhutdttx.html