IOS 小新兵

2017-07-02

lipo -info BaiduOAuthSDK.a  查看a文件支持的架构
第一个坎:
报错:
 未找到模块baiduLogin对应的类BaiduLoginModule。
若是自定义模块,请检查module.json里配置的class是否正确,并检查静态库是否是真机环境编译的。
若是SuperWebView环境,请确保Modules目录下所有的文件都已添加到工程。
一时不知道怎么办,看到真机环境,我就在怀疑,难道我用xcode打个包都还要连手机??不至于吧,后来发现,编译设备选的是摸拟器。。。
换成Generic IOS Device就ok了。
2017-07-10
导入架包用
#import <AliyunVideoSDK/AliyunVideoSDK.h>
导入自己的用
#import "AliyunOthersViewController.h"
2017-07-15
专坑新手呀:
最近在做百度OAuth登录(IOS),里面有一个BaiduSDKDemo工程,如果用这个工程里面的BaiduOAuthSDK.a的话,就会报错:
Apple Mach-O  Linker Error
  "_OBJC_CLASS_$_BaiduOAuthSDK",referenced from:
  Linker command failed with exit code 1 (use -v to see invocation)
我是用的iPhone5 虚拟机做测试的,如果把BaiduOAuthSDK_2.0.1里面的BaiduOAuthSDK代替BaiduOAuthSDK.a就可以运行了。
不过虽然模拟器能运行了,但是用真机iphone6却运行不了,报:
Apple Mach-O Linker (Id) Error
  Linker command failed with exit code 1 (use -v to see invocation)
 
原来NSDictionary是不可变字典呀,难怪我打不到添加key-value的方法。
原来 不能 [NSMutableDictionary init]这样用,如果在代码里没报错,但是运行的时候就说不能new一个对象。只能
 [NSMutableDictionary dictionaryWithCapacity:5];   真心觉是这个语法好坑,为什么没有默认的构造函数。
2017-07-17
lipo -create 真机库.a的路径 模拟器库.a的的路径 -output 合成库的名字.a.                       合并a文件
xcode摸拟器支持的Architecture是 i386和x86_64  分别对应32位的和64位的mac系统。
2017-07-25
F4  打开应用程序列表
2017-07-26
Mac OS虚拟机网络连接失败,后来我关了主机的猎豹WIFI就可以了。
2017-07-30
函数指针:  int (*fnPt)() = max;
fnPt = avg; //换一个值
(*fnPt)(data, 5);  //调用
2017-08-20
如果xcode工程里面,静态库里有ABC类,工程里也有ABC类,运行的时候是跳到工程里的ABC类里面,但是ABC可能读取静态库里的其它类。
2017-08-24
感觉IOS真难学。
在Finder界面中输入快捷键:command+shift+G  可以打开路径输入窗口,输入路径直接跳转。
libz.tbd is not an object file 错误:
在主界面找到libz.tbd, 单击那个文件,打开后打到 install-name: 复制那个路径。
然后到Build Phases中的Link Binary With Libraries  点+号,点Add Other...   快捷键libz.tbd is not an object file,并粘贴
刚才的路径。下一步ok.
2017-10-09
今天在IOS导出静态.a的时候,出了点问题。导出是ok的,但是编译的时候,报
symbol(s) not found for architecture arm64错误,后来瞎猫撞上死耗子,
需要引入二进制文 件。
 
2017-10-14
_userid  等于 self.userid  ???? 今天试了,好像是这样,感觉怪怪的。_就代表是self ,即使我申明的时候是写的userid ???

2017-10-22

用storyboard加载UIViewController

    UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"MiniVR_MainStoryboardstoryboard" bundle:nil];
    UIViewController* controller = [secondStoryBoard instantiateViewControllerWithIdentifier:@"miniVR_player"];

删除storyboard中没用的View Controller,

选中storyboard中的View Controller,然后按键盘上的Delete键就可以删掉了。

真心觉得苹果好高冷,右击点删除不是很方便吗,硬是没有。谁知道你要键盘删,而且删除前没有提示是否确认删除。

路径知识:

拿到的url是/var/containers/...

但是播放器不认识,需要通过NSURL* url = [NSURL fileURLWithPath:Path]; 然后[url absoluteString] 可以拿到播放器能识别的地址,虽然看上去好像只是增加了

file://这个,但最好不要自己去拼字符串,因为通NSURL会对中文 编码,这是兼容性最好的。自己拼字符串可能不能识别中文 。

2017-11-18

在用xcode导静态.a包的时候,如果选择导出的是 Generic iOS Device 类型的,这个是不支持模拟器调试的,只能连上真机调试。

2017-12-03

lipo libMobClickDevice.a -remove x86_64 -output libMobClickDevice.a

2017-12-04

今天在做百度定位开发的时候,在xcode里报了

Apple Mach-O Linker Error

"_OBJC_CLASS_$_ASIdentifier Manager",referenced from:

Linker command failed with exit

code 1(use -v to see invocation)

在网上查了后,要添加AdSupport.framework才ok

2017-12-10

按住command +鼠标左键即可跳转定义.

在做百度定义SDK开发的时候(IOS),发现调用[_locationManager startUpdatingLocation]; 报错。

@try{}@catch后,显示是name:@"NSInternalInconsistencyException" - reason:@"Invalid parameter not satisfying:!stayUp || CLClientIsBackgroundable(internal->fClient)"

后来看文档,说是要加配置,找到Info.plist文件,对比了一下。多了一个这个

加了这个之后就好了。

2018-01-27

xcode打静态包(*.a)包含第三方SDK的方法,进入配置,找到Build Phases 然后是Link Binary With Librares,然后+ ,然后Add Other... 然后找到xxx.frmework,然后又击点进去

然后选中里面的xxxx(没有扩展名,也是静态包),然后点Open

2018-07-07

今天被网友坑了:http://www.cocoachina.com/ios/20160919/17595.html

上面提到两个方式。说第2种推荐

我就用了第2种。发现时间间隔会变,本来我设为5s,后来变为了3s

果断换成第一种方式,就正常了。

感觉第2种会根据系统忙不忙去执行,如果忙,就延后执行,如果不忙,就提前执行,不知道我理解对不对??

2018-07-08

今天在做开发的时候,导入了一些c文件,发现xcode不识别c语法,我一直以为是我没配置好,就去看工程的配置选项+百度,一直没找到原因。

后来,我发现了mm文件的介绍,加上联想,是不是因为我的m文件用到了c语法,所以不识别,那我把它变成mm文件是不是就可以了,说干就干,居然好了。帅。

原文地址:https://www.cnblogs.com/angelshelter/p/7105325.html