http://blog.csdn.net/asianjiang/article/details/5708281
- @interface NSValue (NSValueUIGeometryExtensions)
- + (NSValue *)valueWithPointer:(const void *)pointer;//保存对象指针
- + (NSValue *)valueWithCGPoint:(CGPoint)point;//保存CGPoint结构体
- + (NSValue *)valueWithCGSize:(CGSize)size;//保存CGSize结构体
- + (NSValue *)valueWithCGRect:(CGRect)rect;//保存CGRect结构体
- + (NSValue *)valueWithCGAffineTransform:(CGAffineTransform)transform;
- + (NSValue *)valueWithUIEdgeInsets:(UIEdgeInsets)insets;
- - (void *)pointerValue;
- - (CGPoint)CGPointValue;
- - (CGSize)CGSizeValue;
- - (CGRect)CGRectValue;
- - (CGAffineTransform)CGAffineTransformValue;
- - (UIEdgeInsets)UIEdgeInsetsValue;
- @end
- //
- // NSArrayAndSelectorViewController.m
- // NSArrayAndSelector
- //
- // Created by Lixf on 09-10-15.
- // Copyright Lixf 2009. All rights reserved.
- //
- #import "NSArrayAndSelectorViewController.h"
- @implementation NSArrayAndSelectorViewController
- @synthesize SelectorArray, RectArray, TransformArray;
- // Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- - (void)viewDidLoad {
- [super viewDidLoad];
- //NSValue包装指针
- NSValue* start = [NSValue valueWithPointer:@selector(start:)];
- NSValue* help = [NSValue valueWithPointer:@selector(help:)];
- //NSArray 添加NSValue包装后的指针
- NSArray *Array = [[NSArray alloc] initWithObjects:start, help, nil];
- self.SelectorArray = Array;
- [Array release];
- CGRect rect1 = {10, 10, 200, 200};
- CGRect rect2 = {20, 20, 100, 100};
- //NSValue包装CGRect结构
- NSValue *aRect1 = [NSValue valueWithCGRect:rect1];
- NSValue *aRect2 = [NSValue valueWithCGRect:rect2];
- //NSArray 添加NSValue包装后的指针
- NSArray *reArray = [[NSArray alloc] initWithObjects:aRect1, aRect2, nil];
- self.RectArray = reArray;
- [reArray release];
- //CGAffineTransform
- CGAffineTransform transform1 = CGAffineTransformMakeRotation(40);
- CGAffineTransform transform2 = CGAffineTransformMakeRotation(-40);
- NSValue *aTransform1 = [NSValue valueWithCGAffineTransform:transform1];
- NSValue *aTransform2 = [NSValue valueWithCGAffineTransform:transform2];
- NSArray *TransArray = [[NSArray alloc] initWithObjects:aTransform1, aTransform2, nil];
- self.TransformArray = TransArray;
- [TransArray release];
- [testView setFrame:[[RectArray objectAtIndex:0] CGRectValue]];
- [testView setTransform:[[TransformArray objectAtIndex:0] CGAffineTransformValue]];
- [self performSelector:[[SelectorArray objectAtIndex:0] pointerValue] withObject:nil afterDelay:0.5];
- }
- -(void)start:(id)sender{
- NSLog(@"start");
- [testView setFrame:[[RectArray objectAtIndex:1] CGRectValue]];
- [testView setTransform:[[TransformArray objectAtIndex:1] CGAffineTransformValue]];
- [self performSelector:[[SelectorArray objectAtIndex:1] pointerValue] withObject:nil afterDelay:0.5];
- }
- -(void)help:(id)sender{
- NSLog(@"help");
- //[testView setFrame:[[RectArray objectAtIndex:0] CGRectValue]];
- //[testView setTransform:[[TransformArray objectAtIndex:0] CGAffineTransformValue]];
- }
相关推荐
DHS散点图 用于在iOS和OS X上基于属性驱动的简单散点... 要绘制的数据以NSValue对象数组的NSValue提供, NSValue对象包装了包含要绘制的(x,y)坐标的CGPoint结构。 DHScatterGraphView *scatterGraph = [[DHScatterG
NSValue 可以弱引用保存一个对象,我们可以使用这种方法间接的引用。 NSValue *value = [NSValue valueWithNonretainedObject:@selector(class)]; [array addObject:value]; 2. 使用 NSPointerArray,NSMapTable,...
II自动NS编码 没有所有样板代码的情况下,使对象符合NSSecureCoding的要求。 您的对象可序列化,您不必编写繁琐且难以维护的编码/解码代码。...@property ( nonatomic , strong ) NSValue *aValue; @end @inter
8.5.2 NSValue123 8.5.3 NSNull124 8.6 示例:查找文件124 8.7 小结128 第9章 内存管理129 9.1 对象生命周期129 9.1.1 引用计数130 9.1.2 对象所有权132 9.1.3 访问方法中的保留和释放133 9.2 自动释放134 9.2.1 ...
// pointArray = @[[NSValue valueWithCGPoint:CGPointMake(200, 400)]]; -( void )drawPolygon:( NSArray *)pointArray; //圆形 -( void )drawCircleWithCenter:( CGPoint )center radius:( float )radius; //曲线...
CGRect frame1 = [self.navBar convertRect:leftButton.frame toView:nil]; CGRect frame3 = [self.navBar convertRect:rightButton.frame toView:nil]; return @[ @{@"frame": [NSValue valueWithCGRect:...
OCMock-块测试 ### 特征 [OCMArg invokeBlock] 特定于块参数的约束。... 非Objective-C对象的参数值(例如,基元,结构,指针)必须装在NSValue 。 使用OCMOCK_VALUE可以方便地执行此操作。 在OCMDefault中传递
FastCoder支持比JSON或Plist编码更多的数据类型(包括NSURL,NSValue,NSSet和NSOrderedSet),并且允许将所有受支持的对象类型用作字典中的键,而不仅仅是字符串。 FastCoder还可以使用属性检查自动序列化您的...
FDModel是一个Objective-C模型层,旨在极大地简化从远程对象(即NSDictionary,NSString,NSValue)创建模型对象的过程。 用户只需要在其FDModel的子类中重写remoteKeyPathsToLocalKeyPaths方法即可定义哪些远程键...
CDrawNode-Bezier ... [NSValue valueWithCGPoint:ccp(50,100)], [NSValue valueWithCGPoint:ccp(100,50)], [NSValue valueWithCGPoint:ccp(150,75)], [NSValue valueWithCGPoint:ccp(200,200)], [N
NSValue *value = [NSValue valueWithRange:range]; if (range.length > 0) { [rangeArray addObject:value]; } } for (NSValue *value in rangeArray) { NSRange keyRange = [value rangeValue]; ...
教程套件 TutorialKit 是一个用于创建交互式... NSValue *msgPoint = [ NSValue valueWithCGPoint: CGPointMake ( self .window.bounds.size.width * 0.5 , self .window.bounds.size.height * 0.65 )]; NSValue *
FNMatchPull Swift的基于匹配字符和模式刷新控件。 简体中文是这里。 安装 通过安装 。 pod 'FNMatchPull' , '~> 0.2' 演示: ... let matchAnimator = ...matchAnimator.endPoints = [NSValue.init(CG
然后设置lineData属性: self.graphView.lineData = @[ @[ [NSValue valueWithCGPoint:CGPointMake(1, 20)], [NSValue valueWithCGPoint:CGPointMake(2, 40)], [NSValue valueWithCGPoint:CGPointMake(3, 20)], [N
NSArray points = @[[ NSValue valueWithCGPoint: CGPointMake ( 60 , 40 )], [ NSValue valueWithCGPoint: CGPointMake ( 20 , 35 )], [ NSValue valueWithCGPoint: CGPointMake ( 63 , 67 )] /* ... */ ]; ...
概要 iOS曲线插值包含两个主要组件: UIBezierCurvePath上的类别,UIBezierCurvePath + Interpolation。 演示类别使用情况的小型iOS应用。 例子 ...[array addObject:[NSValue valueWithBytes:& CG
Interface Builder,App Store,framework,dot notation,initialization,object typing,introspection,selector,foundation framework,NSString,NSMutableString,NSNumber,NSDictionary,NSValue,NSData...
XSpotLight XSportLight *SportLight = [[XSportLight alloc ]init]; SportLight.messageArray = @[ @"这是《简书》 " , @"点这里撰写文章" , ...[ NSValue valueWithCGRect: CGRectMake (SCREEN_WIDTH/ 2 , SCREE