您的位置:首页 > 移动开发 > IOS开发

IOS View传统的价值观之间

2015-09-24 09:38 375 查看
1、采用NSUserDefaults通过值,这样的方法不限于传送少量数据的:

比方你要传一个float的值。在须要传的时候用

[[NSUserDefaults standardUserDefaults] setFloat:float forKey::@"float"]

接收值的时候用

[[NSUserDefaults standardUserDefaults] floatForKey:@"float"]

2、NSNotificationCenter来传值

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

UITouch * touch = [touches anyObject];

CGPoint point = [touch locationInView:self];

CGRect roundRect = [self rectNeedRefreshFromThisPoint:point];

mLastPoint = CGPointMake(-1, -1);

NSLog(@"%s: point(%f,%f)", __FUNCTION__, point.x, point.y);

[self addToCurrentLineWithPoint:point.x y:point.y];

[self endLine];

[self setNeedsDisplayInRect:roundRect];

NSNumber *pointX = [NSNumber numberWithFloat:point.x];

NSNumber *pointY = [NSNumber numberWithFloat:point.y];

NSDictionary *pointDict = [NSDictionary dictionaryWithObjectsAndKeys:pointX,@"pointX",pointY,@"pointY", nil];

[[NSNotificationCenter defaultCenter]postNotificationName:@"passTouchedEndPointMsg"object:self userInfo:pointDict];

}

在消息中心的函数:

[[NSNotificationCenter defaultCenter] addObserver:self

selector:@selector(getTouchedPoint:)

name:@"passTouchedEndPointMsg"

object:nil];

- (void) getTouchedPoint:(NSNotification *)noti

{

NSDictionary *pointDict = [noti userInfo];

touchedEndPointX = [[pointDict objectForKey:@"pointX"] floatValue];

touchedEndPointY = [[pointDict objectForKey:@"pointY"] floatValue];

NSLog(@"%f:%f",touchedEndPointX,touchedEndPointY);

}

用消息来传參数有以下几点说法:object指的是发送者、在poseter端的userInfo里面能够存放要传的參数,必须为NSDictionary类型。在center端获取这个dictionary类型用:[notification userInfo];要得到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: