小编Art*_*rts的帖子

如何将CorePlot创建的图形保存为jpg文件

我正在使用CorePlot在我的应用程序中绘制不同的图形.然后,我想将此图保存到jpg文件并发布到某个社交网站(例如,Twitter).

我做了一些文档阅读,并了解以下方法对我有用:

  • CGBitmapContextCreateImage:从位图图形上下文(即我的图形所在的视图或整个屏幕)创建CGImage作为副本 - 我理解对了吗?)

  • CGImageCreateWithImageInRect:如果需要,我可以剪掉图像的某些部分

  • [UIImage imageWithCGImage]:将CGImage转换为UIImage对象

  • UIImageJPEGRepresentation:将我的UIImage对象转换为jpg NSData对象,然后我可以将其分享到我的社交网络

    1. 第一个问题是:我是否理解了为完成任务我必须执行的操作顺序?我会自己尝试一下,但是我遇到了一个导致第二个问题的问题:

    2. 从哪儿可以得到图形上下文的信息传递到CGBitmapContextCreateImage如果我使用CorePlot?对不起,如果这是一个愚蠢的问题,但我不是真的在家里有图形上下文.

非常感谢您提前帮助!如果我在这里得到所有这些,我保证在这里发布我的代码示例.

好吧,多亏了布拉德,这真的很容易,但正如我所承认的那样,我必须发布这些内容:

CPXYGraph *graph=[[CPXYGraph alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];

// setting up the graph
// ...

UIImage *newImage=[graph imageOfLayer];
NSData *newPNG=UIImagePNGRepresentation(newImage); // or you can use JPG or PDF

// For test purposes I write the file to the Documents directory, but you can do whatever you want with your new .png file
NSString *filePath=[NSString stringWithFormat:@"%@/graph.png", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]];

if([newPNG writeToFile:filePath atomically:YES]) 
    NSLog(@"Created new file successfully");
Run Code Online (Sandbox Code Playgroud)

iphone core-plot

12
推荐指数
1
解决办法
3021
查看次数

CoreData轻量级迁移:CoreData可以自动迁移到哪个"模型的简单更改"?

我想尽可能多地使用CoreData轻量级迁移,但是在文档中找不到,具体情况就是这种情况.文档说: 如果您只是对模型进行简单更改(例如向实体添加新属性),则在Mac OS X v10.6及更高版本和iPhone OS上,Core Data可以执行自动数据迁移.

要使Core Data能够执行此操作,更改必须符合明显的迁移模式,例如:
- 简单添加新属性
- 非可选属性变为可选
- 可选属性变为非可选属性,并定义默认值值

好吧,我尝试了添加一个没有关系的新实体并删除一个现有的实体(没有关系),并且自动也适用于我.

问题是:是否有人知道可以自动迁移的简单更改究竟是什么?

migration core-data

7
推荐指数
1
解决办法
1619
查看次数

如何使用CoreData进行初始数据配置设置?

我有一个使用CoreData作为数据存储机制的应用程序,应用程序需要配置一些初始数据.是否有任何建议/您为了设置初始数据而做什么/如何做?

目前我正在以下列方式进行此操作(当应用程序第一次启动时):

SomeEntity *newEntity=[NSEntityDescription insertNewObjectForEntityForName:@"SomeEntity" inManagedObjectContext:context];
[newEntity setCode:@"a-code"];
[newEntity setName:@"a-name"];
...
[context save:nil];
Run Code Online (Sandbox Code Playgroud)

我不喜欢这种方法有两个原因:
1)如果你需要超过10个实体实例用于多个实体类型,那么它很无聊且容易出错
2)初始启动可能需要一些时间

在之前使用SQLite的应用程序中,我只是将我的初始SQLite数据库链接到应用程序中,如果需要修改任何数据,请将数据库移动到Documents目录.CoreData有什么类似的方法吗?

iphone core-data

5
推荐指数
1
解决办法
940
查看次数

标签 统计

core-data ×2

iphone ×2

core-plot ×1

migration ×1