小编Jim*_*Jim的帖子

尝试使用NSFetchedResultsController创建USE_BLOCK_IN_FRAME ... EXC_BAD_ACCESS

这是我的问题的更新.程序中止时我现在收到此警告. 警告:尝试使用不在框架中的块创建USE_BLOCK_IN_FRAME变量.

我找不到有关这意味着什么的更多信息.


这令我感到困惑.我收到EXC_BAD_ACCESS错误.我有NSZombieEneabled(它帮助解决了早期的问题),但是没有要跟踪的调用堆栈.

我有一些几乎相同的代码,相对于另一个获取的结果控制器.

这似乎与作业实体及其关联的客户实体之间的关系有关.关系是[作业实体] << - > [客户实体].

最初,我看到代码在没有错误的情况下工作,其中对应于所选行的作业实体没有通过关系链接的客户端实体.因此,在失败的情况下,这指向客户端实体,但是当它没有失败时,指针为零.

当我遇到这个问题时,我启动应用程序并直接进入作业选择器视图并选择一个单元格.就在那时,问题就出现了.

我做了一个实验,首先启动应用程序并转到客户端选择器视图,因为知道所有客户端实体都会进行提取.然后我去了工作选择器视图并选择了一个单元格.问题没有发生.

由于我只是尝试将指针传递给已经获取的作业实体,因此我不明白发生了什么.

顺便说一下,在我切换到使用NSFetchedResultsControllers之前,代码工作正常.我喜欢他们能为我做的事情,但这里有一些动态,我还没想到.

日志记录没有向我展示解决问题的任何理解.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    userState.selectedJob = [self.fetchedResultsController objectAtIndexPath:indexPath];
    NSLog(@"\n\n(1 Pick) indexPath: %@\n",indexPath);
    NSLog(@"\n\n(1 Pick) userState: %@\n",userState);    
    NSLog(@"\n\nnumber of Objects in job fetchresultscontroller = %d", [[fetchedResultsController fetchedObjects] count] );    
    NSLog(@"\n\n(1 Pick) selected job: %@\n",[self.fetchedResultsController objectAtIndexPath:indexPath]); // This line is causing the problem...
    NSLog(@"\n\n(1 Pick) selected job: %@\n",userState.selectedJob); // Omitting the line above, this line fails 
    [self.navigationController pushViewController:userState.jobInfoTVC animated:YES];     
}
Run Code Online (Sandbox Code Playgroud)

调试输出是

2011-05-07 09:27:04.142 job1[6069:207] …
Run Code Online (Sandbox Code Playgroud)

exc-bad-access core-data nsfetchedresultscontroller nszombieenabled

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

UIColor,UIFont等的外部常量

我有一个constants.m文件,它是许多程序常量的集中集合.要设置颜色,我这样做:

@implementation UIColor (UIColor_Constants) 

+(UIColor *) defaultResultTableBackgroundColor{
    //return [[UIColor colorWithRed:0.6f green:0.004f blue:0.0f alpha:1.0f] retain];
    return [[UIColor colorWithRed:0.1f green:0.004f blue:0.3f alpha:0.3f] retain];
}

+(UIColor *) defaultResultHeaderBackgroundColor{
    return [[UIColor clearColor] retain];
}

@end
Run Code Online (Sandbox Code Playgroud)

在constants.h我有

@interface UIColor (UIColor_Constants) 

+(UIColor *) defaultResultTableBackgroundColor;
+(UIColor *) defaultResultHeaderBackgroundColor;

@end
Run Code Online (Sandbox Code Playgroud)

然后只使用[UIColor defaultResultTableBackgroundColor]我想引用此常量的位置.

我想有一些其他UIColor和UIFont常量,虽然这有效,但似乎比它需要的更复杂.有更简单的方法吗?

cocoa cocoa-touch objective-c extern

7
推荐指数
3
解决办法
6902
查看次数

CSS max-width没有给出比例调整大小

我有一个狭隘的观点,我正在插入一些HTML.每隔一段时间就有一个太宽的图像,所以我一直在包装原始的HTML字符串,使用这个CSS来控制它:

<style type="text/css">p{max-width:100%;}img {max-width:100%;}</style>
<div style=\"word-wrap:break-word\">
.
. ...original HTML inside the div wrapper...
.
</div>
Run Code Online (Sandbox Code Playgroud)

但它没有按比例缩放图像的宽度和高度,因此结果是图像非常扭曲.我还能做些什么,最好是用CSS还是同样容易的东西?

它嵌入在iOS应用程序的webview中.我不希望编写代码来解析原始HTML并查找图像.我需要一个简单的解决方案,利用本机UIView类支持的方法.


更新:

使用Kyle下面的答案中的示例,我认为问题出现在具有嵌入宽度和高度属性的图像中:

凯尔的例子:

<div style="word-wrap:break-word">
<img src="http://www.francodacosta.com/wp-content/uploads/resize_200_150.png">
</div>
<img src="http://www.francodacosta.com/wp-content/uploads/resize_200_150.png">
Run Code Online (Sandbox Code Playgroud)

修改后,将宽度和高度添加到第一个图像链接

<div style="word-wrap:break-word">
<img src="http://www.francodacosta.com/wp-content/uploads/resize_200_150.png" WIDTH="100%" HEIGHT="100%">
</div>
<img src="http://www.francodacosta.com/wp-content/uploads/resize_200_150.png">
Run Code Online (Sandbox Code Playgroud)

两者都使用这个CSS:

div {width:100px;}
p{max-width:100%;}
img{max-width:100%;}
Run Code Online (Sandbox Code Playgroud)

无论是否设置容器宽度属性,确实没有任何区别.我试过两种方式.

事实上,在这种情况下(链接)看起来图像首先按宽度和高度属性放大,然后宽度按CSS最大宽度缩小.这导致了一个非常奇怪的效果.

css resize

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

performSelectorOnMainThread的阻止版本:withObject:waitUntilDone:

有没有办法可以执行一个块而不是一个对应于这个和类似方法的选择器?

我有观察者可能会收到主线程上没有生成的事件.我想要在主线程上执行操作,如果它主要是面向UI的.现在,我需要编写两个方法来执行此操作,其中一个是事件观察者,第二个是需要在主线程上执行的代码.

如果可以的话,我想将这一切都封装到一个方法中.

concurrency multithreading objective-c event-handling objective-c-blocks

7
推荐指数
2
解决办法
2854
查看次数

objective-c getter装饰器,用于布尔值

我正在审查Objective-C编程语言文档,以便更好地理解属性声明和实现.我遇到过这一行,并认为这对我编码的方式很重要:

通常,您应指定符合键值编码的访问者方法名称(请参阅键值编码编程指南) - 使用getter装饰器的常见原因是遵守布尔值的isPropertyName约定.

到现在为止,我只是使用了这个:

@property (nonatomic, assign) BOOL aBooleanProperty;

但我总觉得这可能不太对.

我不明白文档中的最后一部分(突出显示).这是如何表明我应该提供一个吸气装置,这对我有什么用呢?

properties objective-c

6
推荐指数
1
解决办法
1111
查看次数

难以本地化xib文件

我已将两组xib本地化并将它们放入我的项目导航器中,如下图所示:

在此输入图像描述

我的Localized.strings文件工作正常,但有时会错误地选择xib文件.当我将设备语言设置为法语时,我会看到英文xib视图.当我将设备语言设置为英语时,我会看到法语xib视图.

我从项目中删除了xib文件,仅删除了引用,然后将它们拖回到相同位置的项目中,如图所示.就在此刻,我只看到英文版,无论我将设备设置为哪种语言.

是否有人可以看到我做错了什么?

(我已经阅读过像这样的建议,没有为每种语言使用单独的框架.我可能会在某些时候切换到这一点,但是现在,我只是想了解我的设置有什么问题.)

更新

这是en.lproj文件夹的文件组织.fr.lproj文件夹的设置方式相同.它们位于名为Resources的文件夹中. 在此输入图像描述

更新 - 最终结果

我在右侧面板中尝试了我的xib文件的本地化设置.

在此输入图像描述

当我选择两种或多种语言进行本地化时,最后注意到了这些披露按钮.单击显示按钮会显示每种语言的xib文件.然后我重做了外语xib的本地化.(我可能已经从现有的xib中复制并粘贴了.)

所以文件现在组织如下:

在此输入图像描述

localization xib ios

6
推荐指数
1
解决办法
2819
查看次数

使用核心数据实现瞬态属性

我想不通。我所读到的关于瞬态属性的内容告诉我,它们可以在对象模型中使用未定义的类型进行识别。但是编译器会抱怨这个类型是未知的错误。

从核心数据编程指南:

如果不受支持的属性是一个对象,那么在托管对象模型中,您将其类型指定为未定义,并且它是瞬态的。当您实现实体的自定义类时,不需要为属性添加实例变量——您可以使用托管对象的私有内部存储。关于下面描述的实现,需要注意的一点是它们缓存了瞬态值。这使得访问价值更有效——这也是变更管理所必需的。如果您定义自定义实例变量,您应该在 didTurnIntoFault 中清除这些变量,而不是 dealloc 或 finalize。

这是头文件:

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class SearchTerms;

@interface SearchResult : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * lattitude;
@property (nonatomic, retain) NSString * details;
@property (nonatomic, retain) NSString * endTime;
@property (nonatomic, retain) NSString * longitude;
@property (nonatomic, retain) NSString * city;
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * imageLink;
@property (nonatomic, retain) NSString * startTime;
@property (nonatomic, retain) UNKNOWN_TYPE coordinate;
@property (nonatomic, retain) UNKNOWN_TYPE subtitle; …
Run Code Online (Sandbox Code Playgroud)

properties core-data

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

有没有办法在注释视图层中设置z顺序?

我希望有一些annotationView图像显示在其他图像之上,因此它们更容易看到.有没有办法设定订单?

我以为我会尝试类似的东西

[theMap addAnnotations:arrayOfLessImportantItems];
[theMap addAnnotations:arrayOfMoreImportantItems];
Run Code Online (Sandbox Code Playgroud)

但是在尝试此操作后很明显,委托方法MKMapViewDelegate mapView:viewForAnnotation在放下它们时不会观察到任何特定的顺序.(由于注释视图来自池,因此当地图在屏幕上移动时,委托必须添加和删除注释视图图像.)

但我确实有一些我希望更容易看到的项目,并且它们被埋在不太重要的地图引脚后面.有办法克服这个问题吗?

mapkit mkmapview ios mkmapviewdelegate

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

操作系统升级后Xcode无法识别我的设备

这必须是一个简单的配置问题,但我不太了解构建设置.

我将iPad从4.3升级到5.0.我正在使用Xcode 4.2.当我插入设备时,它没有显示在运行按钮上,并且我有一条消息说它无法使用所选设备运行.

我需要做什么?

xcode

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

评论核心数据模型

有没有办法为Core Data的数据模型中的实体,属性和关系添加注释?随着我的模型变得越来越复杂,发表评论会很有用,但我还没有看到任何方法来做到这一点.当然,如果可以通过迁移保留评论也会有所帮助.

core-data

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