随笔分类 -  ios

摘要:话说,大神都是用来膜拜的,只言片语,抛砖引玉。关键时刻还得靠自己去试错,下面把自己的试验结果给出,让大家少走弯路。先说一下背景:上一个项目,lbs,进度也不是很紧,xcode编译,拖拖拽拽生成ipa,测试、上传,倒不觉繁琐。来到新公司,oem好吧,一个项目要分别给十多个厂商做版,拖拖拽拽就晕倒了,无意看到xcodebuild 和xcrun的用法,试着用命令行又玩不转,于是放下。最近实在受不了拖拖拽拽的生活了,发狠给写了个脚本,然后,整个世界清净了。说说下面的脚本:生成ipa的前两个脚本,需要进入.xcodeproj那个目录中执行。其中,factory,appName,version这些变量在另 阅读全文
posted @ 2012-12-29 12:09 ValeTu 阅读(943) 评论(1) 推荐(1)
摘要:+ (NSString*)deviceString{// 需要#import "sys/utsname.h"struct utsname systemInfo;uname(&systemInfo);NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];if ([deviceString isEqualToString:@"iPhone1,1"])return @"iPhone 1G&qu 阅读全文
posted @ 2012-12-19 09:01 ValeTu 阅读(286) 评论(0) 推荐(0)
摘要:po 命令:为 print object 的缩写,显示对象的文本描述(显示从对象的 description 消息获得的字符串信息)。比如:info 命令:我们可以查看内存地址所在信息比如 "info symbol 内存地址" 可以获取内存地址所在的 symbol 相关信息:[cpp]view plaincopyprint?(gdb)infosymbol0x00000001000017f7main+343insectionLC_SEGMENT.__TEXT.__textof/Users/LuoZhaohui/Library/Developer/Xcode/DerivedDat 阅读全文
posted @ 2012-12-10 09:07 ValeTu 阅读(427) 评论(0) 推荐(0)
摘要:/*控制NSLog的输出1 显示输出0 不显示输出*/#if 1#define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);#else#define NSLog(FORMAT, ...) nil#endif通过“Command+l 阅读全文
posted @ 2012-11-13 17:06 ValeTu 阅读(275) 评论(0) 推荐(0)
摘要:1 #include <sys/param.h> 2 #include <sys/mount.h> 3 long long freeSpace() { 4 struct statfs buf; 5 long long freespace = -1; 6 if(statfs("/", &buf) >= 0){ 7 freespace = (long long)buf.f_bsize * buf.f_bfree; 8 } 9 10 return freespace;11 }12 13 +(float)getTotalDiskSpace... 阅读全文
posted @ 2012-10-29 10:11 ValeTu 阅读(612) 评论(0) 推荐(0)
摘要:源网址:http://developer.apple.com/library/ios/#technotes/tn2151/_index.html当一个应用程序崩溃时,创建一份“崩溃报告”对于理解崩溃是如何引起的非常有用。本文档包含有关如何识别,了解并解释崩溃报告的基本信息。简介当一个应用程序在一台iOS设备上崩溃时,一份“崩溃报告”将在该设备上次创建并存储起来。崩溃报告描述应用程序是在何种条件下崩溃的,大部分情况下包含一份当前正在运行线程的完整的堆栈跟踪,通常这在调试问题时非常有用。如果你是一位iOS开发者,你应该查看这些崩溃报告,了解导致你的应用程序崩溃的原因,然后修复它。内存不足报告与其他 阅读全文
posted @ 2012-10-24 16:51 ValeTu 阅读(595) 评论(0) 推荐(0)
摘要:属性可以理解为存取器的方法。它的getter方法和成员变量同名。self.XX 调用,访问的是存取器的方法,而非成员变量。最近有人问我关于什么时候用self.赋值的问题, 我总结了一下, 发出来给大家参考. 有什么问题请大家斧正.关于什么时间用self. , 其实是和Obj-c的存取方法有关, 不过网上很多人也都这么解答的, 那它为什么和存取方法有关? 怎么有关的? 并没有多少人回答出来. 同时关于内存管理的内容, 请大家看旺财勇士的Objective-C内存管理总结~CC专版 , 有些东西我就不多解释了.进入正题, 我们经常会在官方文档里看到这样的代码:MyClass.h?123456[/ 阅读全文
posted @ 2012-10-15 07:07 ValeTu 阅读(350) 评论(0) 推荐(0)
摘要:1.声明类别@interface NSString (NumberConvenience)-(NSNumber *) lengthAsNumber;@end该声明表示,类别的名称是NumberConvenience,而且该类别将向NSString类中添加方法。2.实现类别@implementation NSString (NumberConvenience)-(NSNumber *) lengthAsNumber{ unsigned int length = [self length]; return ([NSNumber numberWithUnsignedInt: length]);}例1 阅读全文
posted @ 2012-09-25 21:55 ValeTu 阅读(162) 评论(0) 推荐(0)
摘要:1 - (void)applicationDidEnterBackground:(UIApplication *)application 2 { 3 // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 4 //... 阅读全文
posted @ 2012-09-14 15:38 ValeTu 阅读(556) 评论(0) 推荐(0)
摘要:[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(ReloadLocalDataTable:) object:CurrentLocalPath];LocalTextField.text=@"";NSString *lastpath = [CurrentLocalPath stringByDeletingLastPathComponent];self.CurrentLocalPath=[NSString stringWithFormat:@"%@",lastp 阅读全文
posted @ 2012-09-14 09:36 ValeTu 阅读(188) 评论(0) 推荐(0)
摘要:Q:如何打印当前的函数和行号?A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号。如:1NSLog(@"%s:%d obj=%@", __func__, __LINE__, obj);其中__func__和__LINE__都是预编译的宏,编译时会分别替换为当前函数和当前行号。下面是一些常用于打印日志的宏。宏说明__func__打印当前函数或方法,c字符串__LINE__打印当前行号,整数__FILE__打印当前文件路径,c字符串__PRETTY_FUNCTION__打印当前函数或方法(在C++中会包含参数类型),c字符串Q:如何打印一个类名,消息名,当 阅读全文
posted @ 2012-09-12 14:29 ValeTu 阅读(6651) 评论(1) 推荐(0)
摘要:AVURLAsset *mp3Asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];for(NSString*formatin[mp3AssetavailableMetadataFormats]) { NSLog(@"-------format:%@",format); for(AVMetadataItem*metadataItemin[mp3AssetmetadataForFormat:format]) { NSLog(@"commonKey:%@",metadataItem.commonKe 阅读全文
posted @ 2012-09-08 23:20 ValeTu 阅读(297) 评论(0) 推荐(0)
摘要:NSAttributedString可以让我们使一个字符串显示的多样化,但是目前到iOS 5为止,好像对它支持的不是很好,因为显示起来不太方便(至少没有在OS X上方便)。首先导入CoreText.framework,并在需要使用的文件中导入:#import<CoreText/CoreText.h>创建一个NSMutableAttributedString:NSMutableAttributedString*attriString=[[[NSMutableAttributedStringalloc]initWithString:@"thisistest!"]au 阅读全文
posted @ 2012-09-06 18:21 ValeTu 阅读(758) 评论(0) 推荐(0)
摘要:导入#import <AudioToolbox/AudioToolbox.h>#import <AVFoundation/AVFoundation.h>1、viewDidLoad方法里加入AudioSessionAddPropertyListener ( kAudioSessionProperty_AudioRouteChange, audioRouteChangeListenerCallback, self );2、实现回调#pragma mark -#pr... 阅读全文
posted @ 2012-09-04 15:02 ValeTu 阅读(510) 评论(0) 推荐(0)
摘要:iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了。如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,AvPlayer播放的话,要实现完美的后台音频播放,依据app的功能需要,可能需要实现几个关键的功能。首先,播放音频之前先要设置AVAudioSession模式,通常只用来播放的App可以设为AVAudioSessionCategoryPlayback即可。模式意义及其他模式请参考文档。AVAudioSession*session=[AVAudioSessionsharedInstance];[ses 阅读全文
posted @ 2012-09-04 10:34 ValeTu 阅读(556) 评论(0) 推荐(0)
摘要:在ios开发中,需用到对于手指的不同操作,以手指点击为例:分为单指单击、单指多击、多指单击、多指多击。对于这些事件进行不同的操作处理,由于使用系统自带的方法通过判断touches不太容易处理,而且会有事件之间的冲突。接下来,通过以UITapGestureRecognizer手势实现此功能需求代码如下:ViewController.m中的viewDidLoad方法: 1: //单指单击 2: UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self... 阅读全文
posted @ 2012-08-31 18:26 ValeTu 阅读(280) 评论(0) 推荐(0)
摘要:目前有三种方法:1、自己搭建服务器。2、用友盟。友盟iOS SDK 1.6.8 之后提供了按渠道做版本检查的功能,程序启动时检查服务器相应渠道下的版本信息,然后和本地app版本信息做判断,需要更新的话弹出UIAlertView提醒用户。http://www.umeng.com/doc/sdk_ios.html3、从http://itunes.apple.com/lookup?id=<Your app ID>得到JSON数据,里面包含版本信息,比较一下就可以了。 阅读全文
posted @ 2012-08-31 17:27 ValeTu 阅读(177) 评论(0) 推荐(0)
摘要:在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高。enum { UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutoresizingFlexibleWidth = 1 << 1, UIViewAutoresizingFlexibleRightMargin = 1 << 2, UIViewAutoresizingFlexibleTopMargi 阅读全文
posted @ 2012-08-26 16:33 ValeTu 阅读(196) 评论(0) 推荐(0)
摘要:[[UIApplicationsharedApplication]setIdleTimerDisabled:YES]; 阅读全文
posted @ 2012-08-16 14:55 ValeTu 阅读(205) 评论(0) 推荐(0)
摘要:iTunes Link Maker地址:http://itunes.apple.com/linkmaker 阅读全文
posted @ 2012-08-16 14:51 ValeTu 阅读(219) 评论(0) 推荐(0)