Qeustion:几乎与标题中所述相同.我查看了互联网,但找不到任何易于理解的内容.我有NSArray很多NSValue.NSValue每个人都持有一个CGPoint.我希望在x那之前按y秒排序.
一些代码:
NSValue * valuePointObject = [NSValue valueWithCGPoint:CGPointMake(x, y)];
NSArray *array = [[NSArray alloc] initWithObjects: valuePointObject, valuePointObject2, ..., nil];
Run Code Online (Sandbox Code Playgroud) CGRect rect = Temp_3_Artwork_Big_Image.frame;
NSLog(@"Rect : %.2f,%.2f,%.2f,%.2f",rect.origin.x,rect.origin.y,rect.size.width,rect.size.height);
NSValue *value = [NSValue valueWithCGRect:rect];
NSLog(@"Value : %@",value);
CGRect rect1 = [value CGRectValue];
NSLog(@"rect1 : %.2f,%.2f,%.2f,%.2f",rect1.origin.x,rect1.origin.y,rect1.size.width,rect1.size.height);
Run Code Online (Sandbox Code Playgroud)
输出就好
Rect : -0.00,-0.00,829.63,1241.93
Value : NSRect: {{-1.1322711e-05, -2.9491075e-05}, {829.63159, 1241.933}}
rect1 : -0.00,-0.00,829.63,1241.93
Run Code Online (Sandbox Code Playgroud)
我NSValue使用解析发送到服务器.这很好用,当我从服务器上取回它时NSString就像是一样
NSRect: {{-1.1322711e-05, -2.9491075e-05}, {829.63159, 1241.933}}
Run Code Online (Sandbox Code Playgroud)
现在我怎么能把它转换成一个CGRect?
在Objective-C中,我可能会使用+[NSValue valueWithNonretainedObject:]保留对象的唯一ID,我不希望保留对象本身.似乎对Swift不赞成.
在Swift怎么办?
看看这个伪代码:
void* magicpointer = malloc(OVER_NINE_THOUSAND);
NSValue* v = [NSValue valueWithPointer:magicpointer];
[v release];
Run Code Online (Sandbox Code Playgroud)
当v被释放时,magicpointer也会被释放,或者我必须手动执行吗?我正在使用手动引用计数.
我正在使用Contentful.com我的iOS应用程序作为内容后端.geo-point在我的Swift项目中,我不能让他们回到我身边.
Contentful文档说他们的API回报是" NSData与" CLLocationCoordinate2D struct.
我NSValue在我的项目中接近这个,但我无法让它正常工作.这是我的代码:
var locationCoord:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: 0,longitude: 0)
var locationData:NSData = entry.fields["location"] as NSData
var locationValue:NSValue = NSValue(bytes: locationData.bytes, objCType: "CLLocationCoordinate2D")
locationCoord = locationValue.MKCoordinateValue
Run Code Online (Sandbox Code Playgroud)
然而,locationCoord.latitude和locationCoord.longitude return错误值(他们总是被一个0.0).
有人能告诉我这里我做错了什么,以及如何正常工作?谢谢.
我试图在NSValue/ NSConcreteValueinstance中提取一个int .我试着以这种方式施放它们,但它不起作用:
NSValue *toValue = (NSValue *)someValue;
NSNumber *toNumber = (NSNumber*)toValue;
int final = [toNumber intValue];
Run Code Online (Sandbox Code Playgroud)
我也试过用,getValue但这对我也没用.
我是新的ios我使用nsvalue来获取数组中的图像视图帧.但是当我记录数组的数量时它只说1.我使用这个数组到其他地方来检索帧.你能否告诉我如何将阵列数量作为图像视图数量的数量.
int j;
for (j=0; j<6; j++)
{
UIImageView *imageView = [_imageArray objectAtIndex:j];
array = [[NSMutableArray alloc]init];
[array addObject:[NSValue valueWithCGRect:imageView.frame]];
NSLog(@"%d",[array count]);
}
Run Code Online (Sandbox Code Playgroud)