我刚刚开始使用Core Data,现在我正在构建我的数据模型.我的实体需要一个UIColor属性,但属性的类型下拉列表没有这个选项.我将它设置为Undefined还是什么?
谢谢
在我的iPad应用程序中,在一个类中我注册了一个通知:
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(selectedList:) name:@"TTSelectedList" object:nil];
Run Code Online (Sandbox Code Playgroud)
我的selectedList:方法看起来像这样:
- (void)selectedList:(NSNotification*)notification
{
NSLog(@"received notification");
}
Run Code Online (Sandbox Code Playgroud)
然后在另一个类(a UITableViewController)中,当选择一行时,我发布该通知:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"posting notification");
[[NSNotificationCenter defaultCenter] postNotificationName:@"TTSelectedList" object:nil];
}
Run Code Online (Sandbox Code Playgroud)
我可以确认通知正在发布,因为"发布通知"被记录到控制台,但是从未调用"已接收通知",这意味着未收到通知且未调用选择器.我无法弄清楚造成这种情况的原因.
谢谢
cocoa-touch objective-c nsnotification nsnotificationcenter ipad
我有一个NSView,其中包含一个NSScrollView,其中包含一个支持CALayer的NSView.我已经尝试了将NSView捕获到NSImage中的所有常用方法(使用-dataWithPDFInsideRect,NSBitmapImageRep -initWithFocusedViewRect等).但是,所有这些方法都将CALayer支持的NSView视为不存在.我已经看过这篇 StackOverflow帖子了,但这是一个关于将CALayer树渲染到图像的问题,而不是包含常规NSView和图层支持视图的NSView.
任何帮助表示赞赏,谢谢:)
我正在开发一个基于核心数据的应用程序中的搜索功能,我正在尝试收集每个人的搜索优化提示,以尽可能快地获取它.搜索需要足够快,以便为20,000多个对象的数据库提供近乎即时的结果.
到目前为止我做了什么(就优化而言)
name索引关键字实体的属性,并在初始导入过程中通过拆分主要实体中的相关字符串并对其进行规范化来创建关键字(剥离大小写和变音符号)>=和<二进制比较器代替BEGINSWITH,等等.我的谓词格式是:SUBQUERY(keywords, $keyword, ($keyword.name >= $LB) AND ($keyword.name < $UB)).@count != 0
$LB下界字符串在哪里,$UB是上限.我AND使用此格式和搜索项数组创建复合谓词.
现在,我正在执行一次获取(当用户键入第一个字母时)使用大约20的获取批量大小,然后在继续键入时使用NSArray的-filteredArrayUsingPredicate方法缩小搜索结果.我也预取了这个keywords关系,因为它用于过滤.显然,占用时间最多的部分是初始提取.在大约15,000个对象的库上有大约1-2秒的显着延迟.时间分析表明它确实是导致延迟的提取:
http://cl.ly/3a1b2022452M2V323f2H
值得注意的另一件事是我必须为结果获取多个实体.所有实体都有一个ranking属性,但我不能一次获取多个实体,因此我不得不单独获取它们,将它们组合成一个数组,然后通过手动排序-sortedArrayUsingDescriptors.
任何有关如何提高速度的提示都将不胜感激.
编辑:基于@ImHuntingWabbits的建议:
添加KeywordFirstChar实体后,我的数据模型(简化)将如下所示:

现在,问题是如何为Car基于提取的实体编写谓词KeywordFirstChar?我唯一能想到的就是:
SUBQUERY(keywords, $keyword, $keyword.firstChar.char == %@)%@要搜索的字符在哪里,但我不知道如果它仍然需要枚举keywords,这会更有效率,除非我误解了这些建议.
我有一个Cocoa应用程序,它使用otool来查找应用程序需要正常运行所需的共享库.例如,假设我在使用QTKit.framework的应用程序上运行otool -L.我得到了程序使用的共享库列表(包括Cocoa.framework和AppKit.framework等基本框架):
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.0.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.0.0)
..... and so on for a bunch of other frameworks
Run Code Online (Sandbox Code Playgroud)
这表明该应用程序使用QTKit.framework.但是,如果我在QTKit.framework(/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit)的二进制文件上再次使用"otool -L",我会得到:
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
/System/Library/PrivateFrameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0)
/System/Library/PrivateFrameworks/MediaToolbox.framework/Versions/A/MediaToolbox (compatibility version 1.0.0, current version 1.0.0)
/System/Library/PrivateFrameworks/VideoToolbox.framework/Versions/A/VideoToolbox (compatibility version 1.0.0, current version 1.0.0)
/System/Library/PrivateFrameworks/CoreMediaIOServices.framework/Versions/A/CoreMediaIOServices (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version …Run Code Online (Sandbox Code Playgroud) 当用户双击时,如何设置操作NSCollectionViewItem。NSTableView,例如,具有setDoubleAction方法。有类似的东西NSCollectionView吗?
谢谢
是否可以在NSPanel第一响应者状态内提供NSView而不提供NSPanel密钥窗口状态(使主应用程序窗口重新签名)?
谢谢.
这是我的动画代码:
CGFloat zDistance = 850;
CGFloat scaleFactor = BACK_COVER_WIDTH / self.transformLayer.bounds.size.width;
CATransform3D rotation = CATransform3DMakeRotation(M_PI, 0.0, 1.0, 0.0);
CATransform3D scale = CATransform3DMakeScale(scaleFactor, scaleFactor, 0.0);
CATransform3D transform = CATransform3DConcat(rotation, scale);
transform.m34 = 1.0 / -zDistance;
CGPoint location = CGPointMake(CGRectGetMidX(self.layer.frame), CGRectGetMidY(self.layer.frame));
[CATransaction begin];
[CATransaction setAnimationDuration:1.0];
self.transformLayer.transform = transform;
self.transformLayer.position = location;
[CATransaction commit];
Run Code Online (Sandbox Code Playgroud)
self.transformLayer是一个CATransformLayer有两个子层,一个用于前面,一个用于后面(我正在创建一个"翻转"效果).但是,此代码只设置位置和变换而不动画.所以我认为也许transform不支持隐式动画,所以我把它拿出来并尝试设置位置,但这也没有动画(我知道肯定position支持隐式动画).
我做错了什么或者不CATransformLayer支持隐式动画?文档没有说它不支持它,所以我假设它.
编辑:这适用于Mac OS X,而不适用于iOS
我正在磁盘栏上实现一个可用空间,在复制文件时,可用空格键会更新.我需要一些方法来通知文件系统更改.这样做的最佳方法是什么?
我打算做一个需要代码语法的Cocoa应用程序(所有常用语言).而不是编写我自己的代码荧光笔/解析器,有没有任何预先制定的解决方案?
谢谢
objective-c ×8
cocoa ×7
calayer ×2
cocoa-touch ×2
core-data ×2
nsview ×2
frameworks ×1
ipad ×1
iphone ×1
macos ×1
nsimage ×1
nspanel ×1
nsresponder ×1
nswindow ×1
otool ×1
performance ×1