Tag: cocoa触摸

导航控制器和视图控制器之间的区别?

导航控制器和视图控制器之间的区别? 我的意思是我们该如何决定何时使用导航控制器或普通的视图控制器?

核心数据直接在代码中获取/设置属性时,不会自动调用值转换器

如果我理解正确,核心数据可转换属性背后的想法是: 在+transformedValueClass实现一个带有返回[NSData class]的NSValueTransformer子[NSData class]以及用于转换的实现 在+load或+initialize注册变压器 将实体的属性设置为可转换的 在xcode模型编辑器中为属性设置您的转换器的名称(您用来注册它的名称)。 在这一点上,我期望访问或设置适当的实体types的managedObject属性将触发值转换器。 但是,我正在使用AFIncrementalStore的应用程序中testing这个,我得到以下行为: A – 在+load或+initialize中注册变压器似乎没有必要; 核心数据无论如何发现它(虽然提前阅读)。 B – 通过AFIncrementalStore获取请求AFIncrementalStore会触发变压器。 例如,我从获取请求中获取JSON,并将响应字典映射到managedObject时,转换器被触发,并将合适的字典密钥转换为对象中的NSData 。 C – 但是,如果我尝试通过代码设置或获取属性,则不会调用变换器。 这就是像myManagedObject.myAttribute = @"hello"不会触发从NSString到NSData的转换, NSString *myString = myManagedObject.myAttribute也不会触发从NSData到NSString的转换。 那么我错过了什么? 我认为这个想法是CoreData会自动调用变压器。 我错了吗? 根据这个问题: 为什么我的可变形的核心数据属性不使用我的自定义NSValueTransformer? 这似乎是苹果框架中的一个错误。 但是,抛出我的是通过AFIncrementalStore值变换器调用。 也许关键是通过代码设置一个属性我不是真的触发AFIncrementalStore,所以更改只是在内存中?

如何实现touch在触摸开始,touchesEnded

我想知道如果有人知道如何实现“触摸里面”的反应,当用户按下,然后举起touchesBegan , touchesEnded方法的手指。 我知道这可以用UITapGestureRecognizer完成,但实际上我正在试图使它只能快速点击(使用UITapGestureRecognizer ,如果你长时间保持你的手指,然后提起,它仍然执行)。 任何人都知道如何实现这个?

UILabel:将换行符模式应用于文本的一部分

考虑一个很长的string,比如“位于美丽的巴尔的摩市中心”。 我的标签对于这个文本来说太小了,现在显示如下: 我希望位置子string被中间截断而不截断“位于”子string ,如下所示: 位于美丽的城市 UILabel类参考指出这应该是可能的: 如果要将换行符模式应用于文本的一部分,请使用所需的样式信息创build一个新的属性string,并将其与标签关联。 如果不使用样式文本,则此属性应用于text属性中的整个文本string。 在一个示例项目中,只有一个UILabel,我尝试按照以下代码进行操作: – (void)viewDidLoad { [super viewDidLoad]; NSString *firstPart = @"Located in"; NSString *secondPart = @"beautiful downtown Baltimore City"; NSString *joined = [NSString stringWithFormat:@"%@ %@", firstPart, secondPart]; NSMutableAttributedString *joinedAttributed = [[NSMutableAttributedString alloc] initWithString:joined]; NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init]; style.lineBreakMode = NSLineBreakByTruncatingMiddle; NSRange detailRange = [joined rangeOfString:secondPart]; [joinedAttributed […]

添加到数组(字典)时如何自动将nil转换为?

我有一些值需要添加到数组(使用initWithObjects ),并稍后编码为JSONstring。 众所周知,当数组满足nil ,它会停止读取下一个值。 作为JSON数组的约定,nil应该在有序位置作为null。 我应该检查每个值,并将其添加到数组之前手动将其转换为[NSNull null] ?

使用点语法来调用方法可以吗?

我试图学习如何开发使用目标C,我读了这本书,使用点语法(obj.var)从类访问伊娃你必须实现这些variables使用@properties,但是我试过使用这个没有为这些variables定义@properties的访问types,它似乎正常工作。 这种访问是如何工作的? 像在Java中一样使用它是一个好习惯吗? 例: ComplexNumber *c1 = [[ComplexNumber alloc]init]; c1.realPart = 3; c1.imaginaryPart = 2; ComplexNumber的方法: – (double)modulus; -(void)setRadius:(double)aRadius phase:(double)aPhase; -(void)print; -(double)realPart; -(double)imaginaryPart; -(void)setRealPart:(double)value; -(void)setImaginaryPart:(double)value;

iOS是否查找特定于地区的.lproj目录(例如en_US.lproj)?

根据官方文件国际化编程主题 : 如果您的Mac应用程序具有美国,英国和澳大利亚用户的本地化,则软件包例程将首先search相应的区域目录(en_US.lproj,en_GB.lproj或en_AU.lproj),然后searchen.lproj目录。 iPhone上的相同应用程序只能在en.lproj目录中看到。 但我试图把我Localizable.strings在en_US.lproj目录中, 而不是 en.lproj,我仍然可以通过使用NSLocalizedString()函数find英文string。 有什么问题?

核心绘图 – 防止绘图缩放/缩放以显示全轴范围

我有一个从0到100的y轴边界和从0到10的x轴边界。当我绘制数据点(0,85)和(1,86)时,仅显示具有数据点的图部分。 我明白这是如何有用,但在我的情况下,我需要显示整个轴,未缩放。 有没有办法显示完整的轴,而不缩放到数据点? 谢谢你的帮助。

NSRefreshedObjectsKey的用途

在NSManagedObjectContextObjectsDidChangeNotification通知中,我有时会得到NSRefreshedObjectsKey键。 我理解刷新的对象是从持久性存储/caching中对象的新获取。 是什么导致通知返回刷新的对象呢? 对于插入,更新,删除等是显而易见的,但我必须做一个对象,它出现在NSRefreshedObjectsKey键? 例如,它可能已被简单地以某种方式触及(相同的值写入相同的键)?

iPad的GroupTableViewBackgroundColor破碎?

任何人都知道如何在iPad上获得groupTableViewBackgroundColor? 这似乎在4.2中被打破。 我试图抓取如果从使用颜色select器的视图,但是当我重新使用它作为另一个视图的背景颜色它是一个不同的灰色阴影。