小编Ben*_*hen的帖子

NSObject.m的源代码在哪里?

我正在努力寻找源头NSObject.m.(我想比较前置和后置的ARC实现retainrelease.)

我查看了http://www.opensource.apple.com/http://www.macosforge.org/但未能找到它.

cocoa open-source

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

有一个Swift等价于GCC`__tribute __((构造函数))`?

我在使用纯Swift创建一些东西时遇到了麻烦.我正在尝试实现类似于NSValueTransformer的类的注册表.

在Objective-C中,我确保通过调用子类setValueTransformer:forName:load类方法来注册NSValueTransformer子类.这种方法在Swift中不起作用,因为运行时不调用loadSwift类.

我的下一个想法是找到Swift版本__attribute__((constructor))但我的搜索空白了.Swift是否提供类似于__attribute__((constructor))或者是实现此操作以编写调用Swift函数的C函数的唯一方法?

swift

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

主机窗口透明时应用CIFilter背景过滤器

我想在网格和列表模式中复制dock Stacks的背景.背景是半透明的黑色,具有模糊效果:

网格模式中的停靠堆栈示例http://www.thecustommac.com/wp-content/uploads/2009/09/stack-highlight.jpg

问题是[CALayer backgroundFilters]仅适用于窗口中的内容,过滤器不适用于其他窗口中的内容.这是我的代码:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{
    //make window transparent
    self.window.backgroundColor = [NSColor clearColor];
    [self.window setOpaque:NO];
    [self.window setHasShadow:NO];
    [self.window setStyleMask:NSBorderlessWindowMask];


    //make the content view layer hosting
    CALayer *rootLayer = [CALayer layer];
    [[self.window contentView] setLayer:rootLayer];
    [[self.window contentView] setWantsLayer:YES];


    //blur the background contents - NOT WORKING!
    [rootLayer setBackgroundColor:CGColorCreateGenericGray(0.0, .716)];

    CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
    [blurFilter setDefaults];
    [rootLayer setBackgroundFilters:[NSArray arrayWithObject: blurFilter]];
}
Run Code Online (Sandbox Code Playgroud)

我想不出怎样才能达到这个效果.(我已经看过显示服务,看看是否有任何有用的功能,但我看不到任何功能.)

有任何想法吗?

macos cocoa core-animation

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

在Xcode中如何在块内添加断点?

我有一个返回块的方法.我想在块内添加一个断点.在Xcode中,在块内部的行上添加断点会导致执行在返回方法时暂停,而不是在块执行时暂停.如何在块中添加断点?

debugging xcode breakpoints objective-c-blocks

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

iOS:提高图像绘制速度

我有一系列想要制作动画的图像(UIImageView支持一些基本的动画,但它不足以满足我的需要).

我的第一种方法是在图像时使用UIImageView和设置image属性.这太慢了.速度差的原因是由于图像的绘制(这使我感到惊讶;我认为瓶颈会加载图像).

我的第二种方法是使用泛型UIView和集合view.layer.contents = image.CGImage.这没有明显的改善.

这两种方法都必须在主线程上执行.我认为速度不佳是因为必须将图像数据绘制到CGContext.

如何提高绘图速度?是否可以在后台线程上绘制上下文?

calayer quartz-graphics cgcontext ios

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

CoreData模型设计:过度使用NSFetchRequest是设计不良模型的症状吗?

可以使用NSFetchRequest图中其他对象的关系或跟随关系来检索核心数据对象.可以公平地说,在一个设计良好的模型中,它将包含足够的关系(和获取的属性),以便将使用NSFetchRequests保持在最低限度吗?

反驳的论点是在iOS中存在NSFetchedRequestController.据推测,如果Apple认为关系和获取的属性在现有的错误/缓存中提供了令人满意的性能,那么他们就不会创建NSFetchedRequestController.

有些情况下使用的NSFetchRequest是优越的,因为Core Data可以在SQLite中完成所有工作.一个例子是获取聚合值.

有什么想法吗?我看过核心数据编程指南.在"获取托管对象"和"核心数据性能"部分中有相关建议,但没有强烈建议关于提取请求的关系,反之亦然.

cocoa core-data data-modeling

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

可能的核心数据错误:名为"更新"的属性无法正常工作?

我有一个名为的核心数据实体Post.其中一个属性被调用updated,它是一个日期.存储的XML如下所示:

<attribute name="updated" type="date">266164481.00000000000000000000</attribute>
Run Code Online (Sandbox Code Playgroud)

由此我得出结论,数据正确存储.当我读回数据时,返回的值是a NSCFNumber,而不是a NSDate.

但是,当我更改名称时updated,pubDate它正常工作.updated未在标题中声明NSManagedObjectNSObject,因此我猜它必须是私有方法.

还有其他人经历过这个吗?我应该向Apple报告吗?

经过几个小时的头部刮伤/嘴巴愤怒之后,我想出了这个.

cocoa core-data objective-c

4
推荐指数
1
解决办法
227
查看次数

合并"NSManagedObjectContextDidSaveNotification"后,NSFetchedResultsController未显示所有结果

我有一个NSFetchedResultsController,它使用谓词获取对象:

isTrash == NO

大部分时间这都按预期工作,但是当一个对象被解除时,获取的结果控制器不会获取未被破坏的对象.

出了什么问题?

concurrency core-data nsfetchedresultscontroller ios

4
推荐指数
1
解决办法
2731
查看次数

为什么NSString比较:当字符串不同时返回NSOrderedSame?

为什么比较返回NSOrderedSame?:

NSString *testString = [anObject aString];

if ([testString compare:@"a string which doesn't equal testString"] == NSOrderedSame) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

注意:我添加了这个问题所以我不会再犯这个错误(因此我给出了直接答案).

objective-c

3
推荐指数
2
解决办法
6179
查看次数

UILocalizedIndexedCollat​​ion仅返回英语排序规则

我试图通过使用获得像Contacts这样的本地化索引UILocalizedIndexedCollation.在我更改语言时的联系人中,索引会更改以匹配语言.但sectionIndexTitles总是会返回英文索引.

我尝试使用我创建的演示应用程序3_SimpleIndexedTableView,这是Apple的演示应用程序,并且两个应用程序都没有本地化索引.

我尝试为当前语言环境创建一个本地化文件夹(我用来[[NSLocale autoupdatingCurrentLocale] localeIdentifier]确定当前的语言环境).这不会影响索引.

plist找不到任何相关的设置.

我错过了什么或UILocalizedIndexedCollation只返回英语校对吗?

localization collation uikit ios

3
推荐指数
1
解决办法
2560
查看次数

UIPanGestureRecognizer触发次数过多

我有一个UIPanGestureRecognizer,它根据我的喜好检测了太多次.我需要一个计数器,并计算3个完成的手势.每当我用手指在识别器点上平移时,它会触发3或4次.甚至引发了5次.

识别器如何设置为检测更少,或者是什么原因导致它检测到这么多次?

我想连续3次单一检测.目前,这可能会导致9到15次调用该函数.

iphone uigesturerecognizer

3
推荐指数
1
解决办法
986
查看次数

是否可以在iPhone上使用Core Graphics保存图像?

以下代码将PDF页面转换为JPEG.它在Snow Leopard上按预期运行:

...
//get the image from the bitmap context
CGImageRef image = CGBitmapContextCreateImage(outContext);

//create the output destination
CGImageDestinationRef outfile = CGImageDestinationCreateWithURL(fileUrl, kUTTypeJPEG, 1, NULL);

//add the image to the output file
CGImageDestinationAddImage(outfile, image, NULL);
CGImageDestinationFinalize(outfile);
...
Run Code Online (Sandbox Code Playgroud)

编译为iPhone时此代码失败,因为iPhone版本的Core Graphics不包括CGImageDestinationRef.有没有办法CFImageRef使用本机iPhone框架和库保存到jpeg?我能想到的唯一选择是放弃Core Graphics并使用ImageMagick.

iphone core-graphics quartz-2d

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