IOS开发的一些技巧以及笔记
来源:互联网 发布:3.3v单片机 编辑:程序博客网 时间:2024/04/30 16:43
解决方法:在编译报错的文件中添加-fno-objc-arc标识,使工程得以顺利编译。
添加方法,工程文件——>Build Phases ——>Compile Sources——>报错文件——>双击报错文件,添加-fno-objc-arc标识。
2、delegate使用
(1)声明delegate的方法
(2)设置在什么情况下调用这个方法
(3)在使用的类的.h文件中包含<XXXdelegate>
(4)实现delegate的方法
(5)设置XXXdelegate.delegate = 实现delegate方法的类
3、调用别人封装好的控件:
①、看别人的demo怎么调用该控件
②、看看该控件的接口属性
4、如何快速打印Frame
①一般会使用:NSLog(@"Frame is %g, %g, %g, %g", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
②方便的办法:NSLog(@"Frame is %@", NSStringFromCGRect(frame));
5、在UI设计的时候应把viewController和view分开,各个view之间、view与viewcontroller之间的交互使用delegate,但是页面的相互切换需要使用导航等切换方式。注:交互和切换是不同的概念
6、delegate的函数放到哪里都没有关系,只要能够调到就行,要是多个页面要实现这个delegate,就得把这个delegate的函数调出去,作为单独的文件。
7、使用NSFileManager管理文件
①、//取得document目录的路径列表
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
②、//document目录的路径列表中的第一个目录就是document目录的路径
NSString *documentsDirectory = [paths objectAtIndex:0];
③、//创建文件管理对象 NSFileManager *fm = [NSFileManagerdefaultManager];
④、//转到document的当前目录 [fm changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]];
⑤、//在当前目录下创建testFile.txt文件 if ([fm createFileAtPath:@"testFile1.txt"contents:nilattributes:nil] == NO) { NSLog(@"create file error >>>>>>>>>");
}
⑥、//获取testFile.txt文件所在的路径
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"testFile.txt"];
⑦、//待写入的数据
NSString *temp = @"Hello friend";
int data0 = 100000;
float data1 = 23.45f;
⑧、//创建数据缓冲
NSMutableData *writer = [[NSMutableDataalloc] init];
⑨、//将字符串添加到缓冲中
[writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];
⑩、//将其他数据添加到缓冲中
[writer appendBytes:&data0 length:sizeof(data0)];
[writer appendBytes:&data1 length:sizeof(data1)];
(11)//将缓冲的数据写入到文件中
[writer writeToFile:path atomically:YES];
(12)//删除文件
if ([fm removeItemAtPath:[documentsDirectory stringByAppendingPathComponent:@"testFile1.txt"] error:nil] == NO) {
NSLog(@"remove file error >>>>>>>>>");
}
8、完美破解Xcode
http://blog.sina.com.cn/s/blog_6ec3c9ce010196ad.html
注意事项:
(1)在输入,命令设置权限的时候要注意,先转到su下面,输入密码,再输入:chmod 777gen_entitlements.py
(2)这段话不能少(在每一个项目中都要添加):
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1.选中项目后,点击Build Phases,在右下方看见Add Build Phase
2.选择Add Build Phase ,然后选择Run Script ,再在shell下的输入框中添加一下内容:
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
9、未使用的成员变量在XCode4.6下的编译错误
XCode4.6加强了对编译的检查,如果一个类中有未使用的私有成员变量,在XCode4.6中会报编译错误。
如果是自己的代码,那么应该立即更改。但是如果是第三方的库代码,自己更改不利于以后升级代码,所以最好加上如下的编译参数:
-Wno-unused-private-field
我的一个iOS项目使用了ZXing库来扫描二维码,正好Zxing库就有上述问题,在项目的 Build Settings中搜索 Other Warning Flags项,然后将这项的值增加:-Wno-unused-private-field即可。如下所示:
10、从Xcode4.5之后,可是像定义字符串那样来快速定义NSNumber、NSArray和NSDictionary
①、定义一个NSString对象:NSString *aString = @"This is a test string";
②、定义一个NSNumber对象:
NSNumber *n1 = @1000; // [NSNumber numberWithInt:1000]NSNumber *n2 = @3.1415926; // [NSNumber numberWithDouble:3.1415926]
NSNumber *anotherInteger = @42; //NSNumber *anInteger = [NSNumber numberWithInt:42];
③、定义一个NSArray对象:
// beforeNSArray *words = [NSArray arrayWithObjects:@"array", @"of", @"words", nil];
// after (array with some strings and numbers)
NSArray *words = @[@"array", @"of", @"words", @1, @1.4];
④、定义一个NSDictionary对象:
//Old wayNSDictionary *oldDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@1, @"key1", @2, @"key2"];
//New way to do it
NSDictionary *newDictionary = @{ @”key1” : @1, @”key2”: @2 };
- IOS开发的一些技巧以及笔记
- IOS开发笔记之开发的一些技巧
- iOS开发的一些技巧
- iOS开发的一些技巧
- iOS开发的一些技巧
- iOS开发的一些技巧
- iOS开发的一些技巧
- iOS开发的一些技巧
- IOS开发的一些技巧和常见问题
- IOS 之 开发的一些小技巧
- IOS开发的一些技巧和常见问题
- iOS开发的一些技巧整理
- iOS开发的一些实用小技巧
- ios开发storyboard的一些小技巧
- iOS 开发的一些小技巧篇
- iOS 开发的一些小技巧篇
- iOS开发的一些小技巧
- iOS 一些常用的开发技巧
- 安卓学习:设置按钮背景透明与半透明_图片背景透明
- Unity3D 2D ToolKit --tk2dCamera
- getch()、getche()和getchar()函数
- c文件到可执行文件运行的过程探索--堆栈中的过程活动记录
- SharePoint 在中国为什么吃不开?
- IOS开发的一些技巧以及笔记
- CTypedPtrList
- 要事第一
- 自定义导航栏背景图片和颜色
- 利用socket自己实现基于HTTP协议的Web客户端
- Android mms 发送流程
- session和cookie详解
- 高效能人士的七个习惯
- 《程序员面试宝典》-指针参数