aja*_*jay 11 objective-c nsarray ios cgrect
对于我的应用程序,我试图将CGRect对象存储到NSMutableArray.它正在加载并在日志语句中打印,但尝试CGRect从数组中取出s会显示错误.这是一段代码:
CGRect lineRact = CGRectMake([[attributeDict objectForKey:@"x"] floatValue],
[[attributeDict objectForKey:@"y"] floatValue],
[[attributeDict objectForKey:@"width"] floatValue],
[[attributeDict objectForKey:@"height"] floatValue]);
[lineRactangle addObject:NSStringFromCGRect(lineRact)];
Run Code Online (Sandbox Code Playgroud)
如何从阵列中取回rects?
Dar*_*ust 41
CGRect是结构,而不是对象,因此不能存储在NSArrays或NSDictionaries中.您可以将其转换为字符串并将该字符串转换回CGRect,但最好的方法是通过NSValue封装它:
NSValue *myValue = [NSValue valueWithCGRect:myCGRect];
Run Code Online (Sandbox Code Playgroud)
然后,您可以将此NSValue对象存储在数组和字典中.要将其重新转换为CGRect,您需要执行以下操作:
CGRect myOtherCGRect = [myValue CGRectValue];
Run Code Online (Sandbox Code Playgroud)
Kir*_*odd 22
[lineRactangle addObject:[NSValue valueWithCGRect:lineRect]];
Run Code Online (Sandbox Code Playgroud)
使用NSValue包CGRect从而将它们存储在NSArray秒.
例如:
CGRect r = CGRectMake(1,2,3,4);
NSValue *v = [NSValue valueWithCGRect:rect];
NSArray *a = [NSArray arrayWithObject:v];
CGRect r2 = [[a lastObject] CGRectValue];
Run Code Online (Sandbox Code Playgroud)
请参阅其他支持的结构的文档.
| 归档时间: |
|
| 查看次数: |
11308 次 |
| 最近记录: |