在可能会抛出异常的代码块用@try标记(四)

2014-11-24 01:35:49 · 作者: · 浏览: 13
oa/cocoa.h"

@interface NSString (Utilities)

-(BOOL) isURL;

@end

//
// NSStringUtiities.h
// test
//
// Created by Dawn on 13-5-27.
// Copyright (c) 2013年 zeng. All rights reserved.
//

#import
#import "Cocoa/cocoa.h"

@interface NSString (Utilities)

-(BOOL) isURL;

@end


NSStringUtiities.m:

[cpp]
//
// NSStringUtiities.m
// test
//
// Created by Dawn on 13-5-27.
// Copyright (c) 2013年 zeng. All rights reserved.
//

#import "NSStringUtiities.h"

@implementation NSString (Utilities)

-(BOOL) isURL{
if ([self hasPrefix:@"http://"]) {
return YES;
}else{
return NO;
}
}

@end

//
// NSStringUtiities.m
// test
//
// Created by Dawn on 13-5-27.
// Copyright (c) 2013年 zeng. All rights reserved.
//

#import "NSStringUtiities.h"

@implementation NSString (Utilities)

-(BOOL) isURL{
if ([self hasPrefix:@"http://"]) {
return YES;
}else{
return NO;
}
}

@end


main.m:


[cpp]
//
// main.m
// test
//
// Created by Zeng on 13-5-24.
// Copyright (c) 2013年 zeng. All rights reserved.
//

#import
#import "NSStringUtiities.h"


int main(int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSString *string1 = @" http://www.baidu.com";
NSString *string2 = @"Ozr";

if ([string1 isURL]) {
NSLog(@"string is URL");
}else{
NSLog(@"string is not URL");
}

if ([string2 isURL]) {
NSLog(@"string isURL");
}else{
NSLog(@"string is not URL");
}

[pool release];
return 0;
}

//
// main.m
// test
//
// Created by Zeng on 13-5-24.
// Copyright (c) 2013年 zeng. All rights reserved.
//

#import
#import "NSStringUtiities.h"


int main(int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSString *string1 = @" http://www.baidu.com";
NSString *string2 = @"Ozr";

if ([string1 isURL]) {
NSLog(@"string is URL");
}else{
NSLog(@"string is not URL");
}

if ([string2 isURL]) {
NSLog(@"string isURL");
}else{
NSLog(@"string is not URL");
}

[pool release];
return 0;
}

上边的代码其实是对NSString做了一个小的扩展

OC中的宏定义和条件编译#ifndef跟C++中是一样的,需要注意这个:

如果在宏定义的参数之前防止一个#,那么在调用该宏的时候,预处理程序根据宏参数创建C语言风格的常量字符串。

例如:

#define str(x) #x

在后面的调用为str(test);得到的结果为"test"


Foundation Framework

可以查看方法的DOC-----------P170

数字对象NSNumber
[java]
//
// main.m
// test
//
// Created by Zeng on 13-5-24.
// Copyright (c) 2013年 zeng. All rights reserved.
//

#import
#import "YourClub.h"
#import "Membership.h"
#import "MyClass.h"
#import "NSStringUtiities.h"


int main(int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

NSNumber *myNumber, *floatNumber, *intNumber;

// 创建integer类型对象
intNumber = [NSNumber numberWithInteger:123];
NSLog(@"%li", [intNumber integerValue]);

// 创建long类型对象
myNumber = [NSNumber numberWithLong:0xababab];
NSLog(@"%lx", [myNumber longValue]);

// 创建char类型对象
myNumber = [NSNumber numberWithChar:'K'];
NSLog(@"%c", [myNumber charValue]);

// 创建float类型对象
floatNumber = [NSNumber numberWithFloat:123.9];
NSLog(@"%f", [myNumber floatValue]);

// 创建double类型对象
myNumber = [NSNumber n