小编kiy*_*shi的帖子

Iphone核心数据在保存时崩溃

我目前正在使用Core Data编写Iphone应用程序,并且EXC_BAD_ACCESS在[managedObjectContext save:&& error]代码行中出现错误.只有在修改某些字段后才会发生此崩溃.更具体地说,我的实体有两个字符串字段(大约10个字段中的字段),它们从模式视图控制器(如文本编辑器)的返回中获取它们的值.崩溃也只发生在编辑这些字段之后,第一次将值放入其中工作正常.

我有格式构造函数字符串只有字符串的原因是因为我试图复制构造...不确定是否自动发生?想到可能会保留/释放来自那些字符串的消息(这两个来自模态视图控制器),在解雇模态视图控制器或其他东西时被释放.但不要猜测,因为它仍然不起作用.

这是崩溃的代码部分:

[EDITED]

        - (void)actionSheet:(UIActionSheet *)modalView clickedButtonAtIndex:    (NSInteger)buttonIndex
      switch(buttonIndex) {
              case 0: {
                if(message == nil) {
                  message = [NSEntityDescription insertNewObjectForEntityForName:@"MailMessage" inManagedObjectContext:self.managedObjectContext];
                }
                message.toString = txtTo.text;
                message.fromString = txtFrom.text;
                message.subjectString = txtSubject.text;
                message.backgroundColor = [NSNumber numberWithInt:[bgColor intValue]];
                message.textArray = [NSString stringWithFormat:@"%@", stringTextArray];
                message.htmlString = [NSString stringWithFormat:@"%@", stringHTML];
                message.timeStamp = [NSDate date];
                message.statusCode = [NSNumber numberWithInt:0];
                NSError *error = nil;
                if (![message.managedObjectContext save:&error]) {
                    abort();
                }   
                break;
               }
              case 1: {
             break;
              }
      }
      if(buttonIndex …
Run Code Online (Sandbox Code Playgroud)

iphone exc-bad-access core-data

14
推荐指数
2
解决办法
2万
查看次数

Iphone CGContextShowTextAtPoint用于日文字符

我正在使用一个应用程序,我用它CGContextShowTextAtPoint来显示屏幕上的文本.我想显示日文字符,但是CGContextShowTextAtPoint输入一个C字符串.所以要么A)如何将日文字符更改为C字符串?如果无法做到这一点,B)如何在屏幕上手动打印日文字符(在drawRect方法中).

提前致谢.

iphone unicode cjk cgcontext

8
推荐指数
1
解决办法
5139
查看次数

Interface Builder从Target继承模块选择错误的目标

我有一个包含三种方案的项目(Debug-MyApp,Beta-MyApp,MyApp)。该项目具有三种配置(Debug,Beta和AppStore)。而且,每个目标都建立各自的配置。当我在Interface Builder中使用自定义类并使用“从目标继承模块”(默认设置)时,它将始终选择Beta_MyApp模块,而不是我正在构建的任何目标(通常是Debug-MyApp)。我在xibs / storyboards中对此进行了验证,因为在Xcode中打开文件会使customModule属性设置为Beta-MyApp。

我还尝试将Interface Builder Xib默认模块和Interface Builder Storyboard默认模块的Project和Target设置都设置为Debug_MyApp。

最终结果是我的自定义类都无法正确呈现。即使Designables说“最新”并且“没有发生界面构建器错误”。

我当前的解决方法是将所有模块显式设置为Debug_MyApp,而不使用从目标继承的模块,这将导致视图正确呈现。

有没有人经历过这个/知道如何补救?

iphone xcode interface-builder ios xcode9

5
推荐指数
2
解决办法
1022
查看次数

Iphone核心数据内部不一致

这个问题与我在这里发布的问题有关:Iphone核心数据在保存崩溃然而错误是不同的所以我正在提出一个新问题.现在,在尝试将新对象插入到managedObjectContext中时出现此错误:

 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
 reason: '"MailMessage" is not a subclass of NSManagedObject.'
Run Code Online (Sandbox Code Playgroud)

但显然它是:

@interface MailMessage : NSManagedObject { ....
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时:

 NSManagedObjectModel *managedObjectModel = [[self.managedObjectContext
    persistentStoreCoordinator] managedObjectModel];

 NSEntityDescription *entity =[[managedObjectModel entitiesByName] 
    objectForKey:@"MailMessage"];

 NSManagedObject *newObject = [[NSManagedObject alloc] initWithEntity:entity 
    insertIntoManagedObjectContext:self.managedObjectContext];
Run Code Online (Sandbox Code Playgroud)

当我不提供MFMailComposeViewController时,它运行正常,但如果我在中运行此代码

- (void)mailComposeController:(MFMailComposeViewController*)controller 
  didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
Run Code Online (Sandbox Code Playgroud)

方法,它在创建newObject变量时抛出上述错误.使用print对象时的实体对象产生以下内容:

(<NSEntityDescription: 0x1202e0>) name MailMessage, managedObjectClassName MailMessage, 
   renamingIdentifier MailMessage, isAbstract 0, superentity name (null), properties {
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,所以我认为managedObjectContext完全无效.我不知道为什么说MailMessage在那时不是NSManagedObject的子类,而不是另一个.

任何帮助将不胜感激,提前谢谢.

iphone core-data

2
推荐指数
1
解决办法
2251
查看次数