1.
NSString *str1 = [_textField stringValue];
NSString *str2 = [str1 uppercaseString];
NSString *str3 = [str1 lowercaseString];
2.
IBOutlet , IBOutlet Collection 使用在xib中,用于将XIB 中的 ui对象与代码相连。
视图控制器会在nib文件加载和对象初始化完成后调用viewDidLoad方法,当viewDidLoad方法调用了,我们就能确定我们的nib文件已经加载完毕。
ios不支持虚拟内存
@autoreleasepool
{ ...... ....... }
3.类别
利用objective-c的动态运行时分配机制,我们可以为现有的类添加新方法,这些方法在obje-c里面被称为类别你(category) 。
//NSString+NumberConvenience.h
给NSString添加类别NumberConvenience
@interface NSString (NumberConvenience)
-(NSNumber *) lengthAsNumber;
.....
@end
ps:不能在类别里添加新的实例变量,属性也必须是@dynamic的。添加属性的好处是我们可以通过 点运算符来访问getter ,setter方法。
//NSString+NumberConvenience.m
@implementation NSString (NumberConvenience)
-(NSNumber *) lengthAsNumber
{ ....... ....... }
........
@end
使用NSString 的类别NumberConvenience
#import "NSStrin+NumberConvienience.h"
int main(int argc , const char *argv[])
{
NSString *str1 = @"hello world";
NSString *str2 = @"happy new year";
[str1 lengthAsNumber];
[str2 lengthAsNumber];
}
ps:创建一个NSObject的类别称为“创建一个非正式协议”;
4.协议
正式协议就像java的接口一样,正式协议要求显式的使用。
通常情况下,一个协议只有少数几个需要实现的方法,你必须要实现所有的这些方法才能获得一系列有用的功能。因此,一般来说,正式协议的要求并不是一种负担。
(1)声明协议
@protocol NSCopying
-(id) copyWithZone: (NSZone *) zone;
....... .....
@end
(2)采用协议
@interface Car : NSObject <NSCopying ,NSCoding>
{ ........ .......}
methods
@end
(3)实现协议