获取localization   语言 [sourcecode lang=”plain”]NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; NSLog(@"%@, %@",languages,NSLocalizedString(@"xxx")); [/sourcecode] Resources—右键—new file —(String files or empty file)命名为: Localizable.strings –右键 get info — make file localizable 添加对应语言的localization   1:Localizable.strings:(针对字符串  NSLocalizedString) 在对应的zh-hans和English文件添加: “xxx”=”本地字符串”; “yyy”=”本地字符串”;   2:InfoPlist.strings:(针对app名称) 在对应的zh-hans和English文件添加: CFBundleName=”本地名”; CFBundleDisplayName=”本地名”;  …

在 iOS中可以直接调用 某个对象的实例方法 方式有2: 1:[obj performSelector:withObject:]; 2:使用NSInvocation 第一种方式比较简单,能完成简单的调用。但是对于>2个的参数或者有返回值的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复杂的操作

IOS应用程序调试 简介 当我们做应用程序的时候,可能会犯各种错误,这可能会导致各种不同的错误。因此,为了修复这些错误或缺陷,我们需要来调试应用程序。 选择一个调试器 Xcode中调试器即 GDB 和 LLDB 调试器,GDB 是默认的。 LLDB是一个调试器是LLVM开源的编译器项目的一部分。您可以更改调试,编辑活动计划选项。 如何查找编码错误? 我们只需要建立我们的应用程序,代码被编译器编译,所有的消息,错误和警告将显示以及错误的原因,我们可以纠正他们。可以点击 product,然后点击”分析”,将在应用程序中可能发生的问题。 设置断点 断点帮助我们了解我们的应用程序对象,帮助我们找出许多缺陷,包括逻辑问题的不同状态。我们只需要点击创建一个断点的行号。我们可以通过点击并拖动它删除断点。如下所示 当我们运行应用程序并选择playVideo,按钮的应用程序将被暂停,我们来分析一下我们的应用程序的状态。当断点被触发时,我们将得到一个输出,如下图所示 可以轻松地确定哪个线程触发断点。在底部可以看到对象,如self,sender等,这些持有相应的对象的值,我们可以展开一些这些对象,看看他们每个的状态是什么。 要继续应用程序,我们在调试区选择继续按钮(最左边的按钮),如下图所示。其他选项包括步骤和单步跳过 异常断点 我们也有异常断点,触发应用程序停止发生异常的位置。通过选择调试导航后选择”+”按钮,我们可以创建异常断点。将得到下面的窗口 然后,我们需要选择” Exception Breakpoint (添加异常)”断点,它会显示下面的窗口 下一步是什么? 你可以在 Xcode 4 用户指南 知道更多关于调试和其他Xcode功能的知识。

IOS内存管理 简介 iOS下内存管理的基本思想就是引用计数,通过对象的引用计数来对内存对象的生命周期进行控制。具体到编程时间方面,主要有两种方式: 1:MRR(manual retain-release),人工引用计数,对象的生成、销毁、引用计数的变化都是由开发人员来完成。 2:ARC(Automatic Reference Counting),自动引用计数,只负责对象的生成,其他过程开发人员不再需要关心其销毁,使用方式类似于垃圾回收,但其实质还是引用计数。 面临的问题 根据苹果说明文档,面临的两个主要问题是: 释放或覆盖的数据仍然在使用。这将造成内存损坏,通常在应用程序崩溃,或者更糟,损坏用户数据。 不释放不再使用的数据会导致内存泄漏。分配的内存,内存泄漏不会释放,即使它从来没有再次使用。泄漏会导致应用程序的内存使用量日益增加,这反过来又可能会导致系统性能较差或死机。 内存管理规则 我们创建自己的对象,当他们不再需要的时候,释放他们。 保留需要使用的对象。如果没有必要必须释放这些对象。 不要释放我们没有拥有的对象。 使用内存管理工具 可以用Xcode工具仪器的帮助下分析内存的使用情况。它包括的工具有活动监视器,分配,泄漏,僵尸等 分析内存分配的步骤 1. 打开一个现有的应用程序。 2. 选择产品,配置文件如下所示 3.在以下界面中选择 Allocations 和 Profile。 4. 我们可以看到不同对象的内存使用情况 5. 你可以切换视图控制器查看内存是否释放。 6.同样我们可以使用 Activity Monitor 来查看内存在应用程序中的分配的情况。 7. 这些工具可以帮助我们了解内存的使用情况及在什么地方可能发生泄漏。

IOS-Twitter和Facebook 简介 Twitter已经整合到iOS5.0,而Facebook已经被集成在 iOS 6.0中。本教程的重点讲解如何利用苹果提供的类在iOS5.0和iOS6.0中部署Twitter和Facebook。 实例步骤 1. 创建一个简单View based application 2. 选择项目文件,然后选择”targets(目标)”,然后在 choose frameworks(选择框架)中添加Social.framework 和 Accounts.framework 3. 添加两个名为facebookPost 和 twitterPost的按钮,并为他们创建 ibActions。 4. 更新 ViewController.h 如下 #import <Social/Social.h> #import <Accounts/Accounts.h> #import <UIKit/UIKit.h> @interface ViewController : UIViewController -(IBAction)twitterPost:(id)sender; -(IBAction)facebookPost:(id)sender; @end 5. 更新ViewController.m ,如下所示 #import “ViewController.h” @interface ViewController…

IOS自动布局 简介 自动布局在iOS 6.0中引入,仅可以支持IOS6.0 及 更高版本。它可以帮助我们创建用于多个种设备的界面。 实例步骤 1.创建一个简单的 View based application 2.修改 ViewController.m 的文件内容,如下所示 #import “ViewController.h” @interface ViewController () @property (nonatomic, strong) UIButton *leftButton; @property (nonatomic, strong) UIButton *rightButton; @property (nonatomic, strong) UITextField *textfield; @end @implementation ViewController – (void)viewDidLoad{ [super viewDidLoad]; UIView *superview = self.view;…

IOS 故事板(Storyboards) 简介 Storyboards在 iOS 5 中才有介绍,当我们用Storyboards时,部署目标应该是iOS5.0或更高版本。 Storyboards 帮助我们了解视觉流动的画面,在界面为 MainStoryboard.storyboard下创建所有应用程序屏幕。 实例步骤 1. 创建一个single view application,创建应用程序时选择 storyboard 复选框。 2. 选择MainStoryboard.storyboard,在这里你可以找到单一视图控制器。添加一个视图控制器,更新视图控制器,如下所示 3.连接两个视图控制器。右键单击”show modal(显示模式)”按钮,在左侧视图控制器将其拖动到右视视图控制器中,如下图所示: 4.现在从如下所示的三个显示选项中选择modal(模态) 5.更新 ViewController.h 如下所示 #import <UIKit/UIKit.h> @interface ViewController : UIViewController -(IBAction)done:(UIStoryboardSegue *)seque; @end 6.更新 ViewController.m 如下所示 #import “ViewController.h” @interface ViewController () @end @implementation ViewController…

IOS GameKit 简介 GameKit是iOS SDK中一个常用的框架。其核心功能有3个: 交互游戏平台Game Center, P2P设备通讯功能 In-Game Voice。 实例步骤 1.在链接 iTunes 时请确保拥有一个唯一的 App ID( unique App ID),App ID在我们应用程序更新 bundle ID时及在Xcode代码签名与相应的配置文件需要使用到。 2.创建新的应用程序和更新应用程序信息。在添加新的应用程序文档可以了解更多有关信息。 3.打开你申请的application,点击Manage Game Center选项。进入后点击Enable Game Center使你的Game Center生效。接下来设置自己的Leaderboard和Achievements。 4.下一步涉及处理代码,并为我们的应用程序创建用户界面。 5.创建一个single view application,并输入 bundle identifier 。 6.更新 ViewController.xib,如下所示 7.选择项目文件,然后选择目标,然后添加GameKit.framework 8.为已添加的按钮创建IBActions 9.更新ViewController.h文件,如下所示 #import <UIKit/UIKit.h> #import <GameKit/GameKit.h>…

IOS iAD整合 简介 IAD是苹果推出的广告平台,它可以帮助开发者从应用程序中获取收入。 实例步骤 1. 创建一个简单的View based application 2. 选择项目文件,然后选择目标,然后选择框架并添加 iAd.framework。 3. 更新 ViewController.h 如下所示 #import <UIKit/UIKit.h> #import <iAd/iAd.h> @interface ViewController : UIViewController<ADBannerViewDelegate> { ADBannerView *bannerView; } @end 4. 更新ViewController.m ,如下所示 #import “ViewController.h” @interface ViewController () @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad];…

IOS应用内购买 简介 应用程序内购买是应用程序用于购买额外内容或升级功能。 实例步骤 1.在 iTunes 连接中请确保拥有一个唯一的 App ID(unique App ID ),当创建捆绑的ID( bundle ID)应用程序更新时,代码会以相应的配置文件签名在Xcode上 2.创建新的应用程序和更新应用程序信息。你可以知道更多有关的,在苹果的 添加新的应用程序 文档中 3.在应用程序页的管理应用程序( Manage In-App Purchase)中,为app内付费添加新产品 4.确保设置的应用程序为的银行详细。需要将其设置为在应用程序内购买(In-App purchase)。此外在 iTunes 中使用管理用户(Manage Users)选项,创建一个测试用户帐户连接您的应用程序的页。 5.下一步是与处理代码和为我们在应用程序内购买创建有关的 UI。 6.创建一个单一的视图应用程序,并在 iTunes 中指定的标识符连接输入捆绑标识符 7.更新ViewController.xib ,如下所示 8.为三个标签创建IBOutlets,且将按钮分别命名为 productTitleLabel、 productDescriptionLabel、 productPriceLabel 和 purchaseButton 9.选择项目文件,然后选择目标,然后添加StoreKit.framework 10.更新ViewController.h ,如下所示 #import <UIKit/UIKit.h> #import…