IOS/OSX开发问题杂记

这篇博客详尽记录了iOS和OSX开发中遇到的各种问题,包括但不限于配置问题、编译错误、性能优化等方面,并提供了相应的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇用于记录一些开发过程中遇到的小问题以及解决方法。

之前都是记在Pages上,后来发现并不方便,所以还是记在blog上吧,加深印象,查看方便。

2016/7/18
1. receiver xxx for class message is a forward declaration : 却少import文件,点击xcode提示出问题的地方,command+单击 进入该类所在的头文件中,如NSImage在AppKit.framework里,那么先在targets的general中的Linked frameworks and libraries中添加AppKit.framework,然后import该framework即可。

2016/7/21
1. 获取当前线程的名称: NSLog(@"%@",[NSThread currentThread]);

2016/7/22
1. NSString *a = @"/user/hbw/desktop";
    NSString *b = @"test.jpg";
    NSString *c = [a stringByAppendingPathComponent:b];  //这样字符串c中就存储了:@"/user/hbw/desktop/test.jpg";

2. NSURL *url = @"......";
    NSString *str = [url absoluteString]; //将url转为字符串
    NSURL *url2 = [NSURL urlWithString:str]; //将字符串转为url
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; //将字符串转为NSData
    [data writeToFile:c atomically:YES]; //将data写到路径c表示的文件中

3. new file->resource->property list :创建plist文件

4. 关于文件路径的NSString与NSURL的转换:
//创建一个NSURL路径,要用 fileURLWithPath:
    NSURL *exampleURL = [NSURL fileURLWithPath:@"/Users/hbw/Desktop/test.jpg"];
    
    // 获取一个NSURL中的文件所在文件夹的路径,以NSURL表示:
    //将url转为string
    NSString *exampleString = [exampleURL absoluteString];
    
    //解析出test.jpg所在的文件夹的路径:
    //先用“/”字符将exampleString分解,将会分解为Users、hbw、Desktop、test.jpg四项,并存储在strArray中
    NSArray *strArray = [exampleString componentsSeparatedByString:@"/"];
    // 我们取出strArray中的最后一项,即为test.jpg字符串
    NSString *fileName = [strArray lastObject];
    //得到_fileName == @"/test.jpg"
    NSString *_fileName = [@"/" stringByAppendingString:fileName];
    //只要将@"/test.jpg"从exampleString中删去就能得到test.jpg所在文件夹的路径了
    NSArray *array = [exampleString componentsSeparatedByString:_fileName];
    NSString *docPath = [array objectAtIndex:0]; //docPath == @"file:///Users/hbw/Desktop"
    //从docPath中取出@"/Users/hbw/Desktop"
    NSString *p = [docPath substringFromIndex:7];
    //创建url
    NSURL *s = [NSURL fileURLWithPath:p];

2016/7/25
1. 颜色空间主要有四种:RGB、YUV、HSV,Gray(灰阶空间)
HSV使用色调,饱和度,亮度来描述图像。
RGB使用Red,Green,Blue,Alpha来描述图像

2. UIImage和UIView使用的是左上原点坐标,Core Image和Core Graphics使用的是左下原点坐标。这个概念很重要,当你遇到图像绘制倒立问题的时候你就知道了。

3. 
NSLog(@"Retain count is %ld", CFGetRetainCount((__bridge CFTypeRef)myObject));

2016/7/26
1. 例如CGContextRef, Ref是CoreFoundation的命名规则,看到Ref结尾的对象就知道是CFType类(CF代表Core Foundation)型对象。这样的对象是c类型的对象,不是cocoa类型的对象,所以系统不会自动回收此类对象,需要我们手动去释放。
关于CFTypes,apple api reference有如下的解释:
All other Core Foundation opaque types derive from CFType. The functions, callbacks, data types, and constants defined for CFType can be used by any derived opaque type. Hence, CFType functions are referred to as “polymorphic functions.” You use CFType functions to retain and release objects, to compare and inspect objects, get descriptions of objects and opaque types, and to get object allocators.

ARC的诞生大大简化了我们针对内存管理的开发工作,但是只支持管理 Objective-C 对象, 不支持 Core Foundation 对象。Core Foundation 对象必须使用CFRetain和CFRelease来进行内存管理。那么当使用Objective-C 和 Core Foundation 对象相互转换的时候,必须让编译器知道,到底由谁来负责释放对象,是否交给ARC处理。只有正确的处理,才能避免内存泄漏和double free导致程序崩溃。
(参考 :http://blog.youkuaiyun.com/yiyaaixuexi/article/details/8553659)


2016/7/27
1. 目前,UIImage和UIView使用的是左上原点坐标,Core Image和Core Graphics使用的是左下原点坐标。这个概念很重要,当你遇到图像绘制倒立问题的时候你就知道了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值