iphone开发小技巧汇总(1)

1.iphone之xx_Prefix.pch的作用和用法

    Prefix.pch:扩展名.pch表示"pre-compiled-header",这是一个你工程要用到的 来自于外部框架的头文件列表。xcode将编译这些头到文件,这将减少你在选择Build或Build and Go时编译项目的时间。通常用到的头文件已经自动包含了

   pch,系统编译每个.m文件前,都会先import这个文件。这样既节省了你手动添加import的时间,也有助于加速编译.

   还有就是可以 在这里面放入宏,在整个工程中都可以用。节省了时间

2.iphone之发布版本的时候移除NSLog输出的方法

只需要将下列代码加入到pch文件中即可, __OPTIMIZE__这个编译选项是发布版本才有的,所以在编译调试版本的时候可以看到Log,而发布版本则没有Log。

#ifndef __OPTIMIZE__

   #define NSLog(...) NSLog(__VA_ARGS__)

#else

   #define NSLog(...) {}

#endif

3.iphone之设置icon的高光状态

iphone之设置icon的高光状态

4.iphone之unichar和初始化

在iphone/mac开发中,unichar是两字节长的char,代表unicode的一个字符。但在xcode中,初始化unichar是个问题。如果像下面这样声明,会有warning"Multi-character character constant"。

unichar a = '国';

这是 因为C语言中两个单引号只能用于char。可以采用直接写文字编码的方式来初始化。

unichar a = 0x0100;

如果有很多个unichar怎么办?一个个去查表太麻烦了。可以采取变通的方法:

unichar a[10];

NSString *aString = @"一二三四五六七八九十";

for (int i = 0; i < 10; i++)

a[i] = [aString characterAtIndex:i];

5.iphone之转向appstore中商品

NSString *str =@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=473898949";

[[UIApplication sharedApplication] openURL:[NSURLURLWithString:str]];

把"id=3410863403"换成id=xxxx(自己程序的ID),即可。

6.iphone之iphone控件尺寸


iphone开发小技巧汇总(1)_第1张图片

7.iPhone之发送附件邮件代码

    MFMailComposeViewController *picker = [[MFMailComposeViewControlleralloc] init];
    picker.mailComposeDelegate = self;
    
    [pickersetSubject:@"I have a pencil for you"];
    NSString*databasePathFromApp = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"10.pdf"];
    NSData*fileData = [NSDatadataWithContentsOfFile:databasePathFromApp];
    [pickeraddAttachmentData:fileData mimeType:@"application/pdf"fileName:@"15.pdf"];
    [pickeraddAttachmentData:fileData mimeType:@"application/pdf"fileName:@"16.pdf"];
    UIImage*roboPic = [UIImage imageNamed:@"1.png"];
    NSData*imageData = UIImageJPEGRepresentation(roboPic, 1);
    [pickeraddAttachmentData:imageData mimeType:@"image/jpg"fileName:@"1.png"];
    
    NSString*emailBody = @"This is a cool image of a robot Ifound.  Check it out!";
    [pickersetMessageBody:emailBody isHTML:YES];
    
    [selfpresentModalViewController:picker animated:YES];
    [pickerrelease];

8.iphone之自动休眠定时器

Phone OS试图省电的一个方法是使用自动休眠定时器。

如果在一定的时间内没有检测到触摸事件,系统最初会使屏幕变暗,并最终完全关闭屏幕。大多数开发者都应该让这个定时器打开,但是,游戏和不使用触摸输入的应用程序开发者可以禁用这个定时器,使屏幕在应用程序运行时不会变暗。

将共享的 UIApplication对象的 idleTimerDisabled属性设置为 YES,就可以禁用自动休眠定时器。

9.iphone之广告转向

NSString *iTunesLink =@"http://itunes.apple.com/us/app/id(产口id号)?mt=8";

[[UIApplication sharedApplication] openURL:[NSURLURLWithString:iTunesLink]];

10.iphone之navigationItem 添加标题视图的方法

但是 如果题目太长,后半部分就变成省略号了,那要实现自定义字体。代码如下:
UILabel *titleText =[[UILabel alloc] initWithFrame: CGRectMake(0, 0,200, 20)];
titleText.backgroundColor =[UIColor clearColor];
[titleText setFont:[UIFontsystemFontOfSize:15.0]];
[titleText setText:@"设置navigationItem标题的字体大小"];
self.navigationItem.titleView=titleText;//titleView
[titleText release];

11.iphone之开源类库工具

几个常用的开源类库及下载地址:
1. jsonjson编码解码
2. GTMBase64base64编码解码
3. TouchXMLxml解析
4. SFHFKeychainUtils安全保存用户密码到keychain中
5. MBProgressHUD很棒的一个加载等待特效框架
6. ASIHTTPRequesthttp等相关协议封装
7. EGORefreshTableHeaderView下拉刷新代码
8. AsyncImageView异步加载图片并缓存代码




 


作者:likendsl 发表于2012-6-15 14:07:53 原文链接
阅读:7 评论:0 查看评论

你可能感兴趣的:(开发,iPhone)