之前看完了<iOS开发进阶>, 也做了相应的总结, 详见:读<iOS开发进阶>有感
今天花点时间, 把一些干货汇总下, 然后就可以和这本书say goodbye了。
包括:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. NSObject *object = [[NSObject alloc] init]; NSLog(@"Reference Count = %u", [object retainCount]); [object release]; NSLog(@"Reference Count = %u", [object retainCount]); return YES; } // 打印结果 // 2015-01-21 10:04:05.799 MRC_Test[2985:607] Reference Count = 1 // 2015-01-21 10:04:05.800 MRC_Test[2985:607] Reference Count = 1
@property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;
launchOptions { // Override point for customization after application launch. return YES; } - (void)applicationWillResignActive:(UIApplication *)application { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - (void)applicationDidEnterBackground:(UIApplication *)application { [self beginBackgroundUpdateTask]; //在这里添加需要长久运行的代码 [self endBackgroundUpdateTask]; } - (void)beginBackgroundUpdateTask { self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ [self endBackgroundUpdateTask]; }]; } - (void)endBackgroundUpdateTask { [[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask]; self.backgroundUpdateTask = UIBackgroundTaskInvalid; }
在UIViewController中收起键盘, 除了调用相应控件的resignFirstResponder 方法外, 还有另外三种办法:
1. 重载 UIViewController 中的 touchesBegin方法, 然后在里面执行 [self.view endEdiiting: YES]; 这样单击UIViewController的任意地方, 就可以收起键盘。
2. 直接执行[[UIApplication sharedApplication] sendAction:@selector(resignFirstResponder) to: nil from: nil forEvent: nil]; 用于在获得当前UIViewController比较困难的时候用。
3. 直接执行 [[[UIApplication sharedApplication] keyWindow] endEditing: YES]
在iOS应用中, 有时候会需要调用系统的一些UI控件, 例如:
1. 在UIWebView中长按弹出系统的上下文菜单。
2. 在UIImagePickerController中会使用系统的照相机界面。
3. 在编译状态下的UITableViewCell, 处于待删除状态时, 会有一个系统的删除按钮。
以上这些UI控件, 其显示的语言并不是和你当前手机的系统语言一致, 而是根据你的应用内部的语言设置来显示。
在 info.plist文件中, 增加:
CFBundleLocalizations zh_CN
使用-w禁止掉所有的编译警告, 用-Wno-unused-variable 只禁止未使用变量的编译警告。
(用法和 -fno-objc-arc 一样)
... 直接把图片拖放到模拟器中, 会利用Safari打开, 然后保存即可。