深入理解Objective-C中字符串常量

在Objective-C中我们常常会用到常量字符串,常量字符串和一般的字符串还是有一定区别,本文将介绍一些常量字符串的特性,加强你的常量字符串的认识。请看下面一段代码。

1
2
3
4
5
NSString *string1 = @"Hello";
NSString *string2 = @"Hello";
if (string1==string2) {
NSLog(@"They are same address");
}

阅读全文

Objective-C中消息(Message)和方法(Method)的区别

如何描述这段代码:

1
[window makeKeyAndVisible]

阅读全文

ViewController的生命周期分析和使用

请注意,iOS6以后内存警告时会自动把不显示的所有view的相关显示而占用的内存清除,而不会设置view属性对象为nil,也不会调用viewDidUnload,而viewDidload也只会调用一次。以下部分内容可能有所不同。

iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验。

结构

按结构可以对iOS的所有ViewController分成两类:

  1. 主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController。
  2. 用于控制和显示其他ViewController的ViewController。这种ViewController一般都是一个ViewController的容器。如UINavigationController,UITabbarController。它们都有一个属性:viewControllers。其中UINavigationController表示一种Stack式结构,push一个ViewController或pop一次,因此后一个ViewController一般会依赖前一个ViewController。而UITabbarController表示一个Array结构,各个ViewController是并列的。

阅读全文

iOS5新增内容之支持文本输入的UIAlertView

iOS5中UIAlertView新增了一个属性alertViewStyle,它的类型是UIAlertViewStyle,是一个枚举值:

1
2
3
4
5
6
typedef enum {
UIAlertViewStyleDefault = 0,
UIAlertViewStyleSecureTextInput,
UIAlertViewStylePlainTextInput,
UIAlertViewStyleLoginAndPasswordInput
} UIAlertViewStyle;

阅读全文

iOS5新增内容之UIStepper控件详解

在iOS5中新增了一个数字输入控件UIStepper,它可以递进式输入数量。UIStepper继承自UIControl,它主要的事件是UIControlEventValueChanged,每当它的值改变了就会触发这个事件。它的显示效果如下:

image

阅读全文

NSUbiquitousKeyValueStore使用和注意事项

NSUbiquitousKeyValueStore是iOS5中新增的类,它提供对iCloud进行Key-Value方式的存储。一般用于保存跨设备的用户配置,如阅读软件保存当前用户阅读的位置,如果用户更换其他设备,可以使用户无缝地从上次的位置继续阅读。它的使用方法几乎和NSUserDefault对象一致。首先通过类方法defaultStore获取默认的Store,然后调用setInteger:forKey:、integerForKey、setObject:forKey、objectForKey:等方法存储和获取数据。

阅读全文

iOS偏好设置系统详解

偏好设置(Preference)系统是大部分App的一个重要部分,它给你的App提供了长期保存相关配置数据的功能,即使你的App退出了,数据依然在下次启动是可以获取到。在偏好设置中我们会常常保存控制App特性的变量,而这些变量应该是property list类型的,即它们要么是NSString、NSNumber、NSDate、NSData这些简单类型,要么只是由这些简单类型组成的NSArray或NSDictionary。这些数据的设置和获取都是通过NSUserDefaults这个类来进行的,可以调用standardUserDefaults这个类消息获取App全局静态的NSUserDefaults对象,然后就可以调用这个对象的相关方法访问配置。

阅读全文

通过URL Schema中打开iOS设置

iOS5.0中增加了通过URL Schema打开系统设置功能,并且可以具体打开到相关设置页。这样就很方便在我们提示用户修改系统设置时进行相关跳转。
比如打开位置服务设置的URL是:

1
prefs:root=LOCATION_SERVICES

阅读全文

Objective-C对象消息名关键词

我们在写Objective-C的代码时,在进行某个动作(action)时,会发送一些相关联的消息。经常会遇到以下的一些关键词:

  1. should
    决定某个动作是否要发生,如果返回NO,则不会执行这个动作,也不会有will和did消息(下面将会说明)了。如shouldAutorotateToInterfaceOrientation:

阅读全文

打造自己的Mac系统字典

看SDK英文文档头疼啊…
软件还要支持英文的国际化…
iOS开发中经常会遇到这些问题,每个Mac OS都自带了“字典”应用,不幸的是,这个字典只支持英文对英文的解释。对于咱们对英文不熟的人来说,这个应用确实是个鸡肋。我们最需要的是英文到中文或中文到英文的翻译,也许你会尝试去寻找其他Mac OS字典应用来满足你的需求,但其实系统自带的字典app只需简单几步就可以加入这些翻译功能,而且可以随意添加我们想要的字典,牛津、朗文随便挑选了。(^o^)

阅读全文