小编Dov*_*Dov的帖子

我怎样才能知道有多少人订阅了我正在服务的RSS源?

我们有一个服务于某些RSS源的网站,我们想知道有多少人订阅了每个RSS源,而不使用像FeedBurner这样的系统来为它们提供服务.

解决这个问题的最初方法基本上是记录请求,然后获取请求每个订阅源的唯一IP的数量.但是,例如,如果我通过Google阅读器订阅了100万人,那么我只会向Google收到所有订阅者的1个请求,对吧?

有没有解决的办法?

FeedBurner本身如何解决这个问题?
现在作为谷歌的财产,它肯定可以找出有多少人在GReader中特定订阅了某个Feed,但我确信还有其他在线RSS源可能会出现同样的问题.

有任何想法吗?

statistics rss subscription

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

作为NSNotification观察员的类?

是否可以拥有静态NSNotification观察器(如下面的代码)?我遇到了一些问题,我认为这可能是由于我的单例类结构.

我并不总是有一个类实例来监听通知,但是这个类的静态属性仍然适用于我的应用程序的生命周期.

- (id)init {
    [super init]

    [[NSNotificationCenter defaultCenter] addObserver:[self class]
                                             selector:@selector(action:aNotification:)
                                                 name:@"NSSomeNotification"
                                               object:nil];
    return self;
}

+ (void)action:(NSNotification *)aNotification {
    NSLog( @"Performing action" );
}
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nsnotifications nsnotification nsnotificationcenter

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

如何在Xcode 3中调试单元测试?

我按照Apple的指示在我的项目中设置单元测试.我按照指示使它们依赖,所以测试运行我的主项目的每个构建.这是有效的,当我的测试通过时,应用程序运行; 当他们不这样做时,我会在失败的单元测试中遇到构建错误.

但是,我希望能够在测试失败时逐步执行我的应用程序代码,但无法正确配置Xcode(3.2.5).该项目是一个Mac项目,而不是iOS.

我在这里这里尝试了指令,但执行从未在我设置的断点处停止,无论是在单元测试代码中还是在我的应用程序代码中.在遵循第一组指令后,我设置的断点变为黄色并带有蓝色轮廓,我也不知道这意味着什么.我需要做什么才能完成测试?

更新

我发现另一个页面试图通过向我的主可执行文件添加参数和环境变量来解决这个问题(这里),但同样,这些并没有导致执行停止在我的断点处.我还注意到我的测试(大量)日志语句也没有显示在我的调试器控制台中.

我还发现黄色断点意味着在运行时无法找到的代码.这些都在我的测试用例类中,所以这似乎肯定解释了为什么那些没有解雇.

debugging macos xcode unit-testing objective-c

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

UTI和文件扩展名关联

在我的应用程序中,我想要包含一个QuickLook插件,该插件读取其他应用程序也使用的非系统扩展(让我们在这个例子中使用RAR).我将扩展名声明为Exported UTI我的应用程序包的Info.plist,如下所示:

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
            <string>public.archive</string>
            <string>com.rarlab.rar-archive</string>
        </array>
        <key>UTTypeDescription</key>
        <string>Custom RAR Archive</string>
        <key>UTTypeIdentifier</key>
        <string>com.my-company.rarx-archive</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>rarx</string>
            </array>
        </dict>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

我也适当地导入了RAR UTI:

<key>UTImportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
            <string>public.archive</string>
        </array>
        <key>UTTypeDescription</key>
        <string>RAR Archive</string>
        <key>UTTypeIconFile</key>
        <string>RAR</string>
        <key>UTTypeIdentifier</key>
        <string>com.rarlab.rar-archive</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>rar</string>
                <string>rarx</string>
            </array>
        </dict>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

但是,在我运行它之后,RARX文件似乎永远不会与我的应用程序相关联.为了检查关联,我这样使用mdls:

mdls -name kMDItemContentTypeTree "/Users/Me/.../A File.rarx"
>>> kMDItemContentTypeTree = (
    "com.another-company.rarx-archive",
    "public.data",
    "public.item",
    "public.archive"
)
Run Code Online (Sandbox Code Playgroud)

为什么我的UTI(com.my-company.rarx-archive)不会出现在该列表中?我相信这导致我的Quick Look插件没有触发,因为文件与com.another-company.rarx-archiveUTI 相关联.我系统上的另一个应用程序就是使用它.运行qlmanage …

macos file-type objective-c uti

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

CoreAnimation CALayer和CATextLayer组合

我最近刚和CA一起玩.现在我有点卡住了.这是我想要动画的东西: 在此输入图像描述

至于现在我已经得到了圆形动画.我将CALayer子类化为制作动画.我真的不知道从哪里开始.我在哪里添加CATextLayer的子图层?如何同时为两者设置动画,使其看起来像带有线条的文字粘在圆圈末端?

如果您需要一些代码或其他任何内容,请告诉我.

我很乐意在这里得到一些帮助:-)

非常感谢!

iphone core-animation calayer catextlayer

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

OCMock在运行时失败

我试图在我的测试用例中第一次使用OCMock.这是一个Mac项目,基于Xcode 4.3构建并以Lion为目标.主应用程序和测试包都打开了ARC,因此每次执行测试时都会看到以下日志消息:

GC: forcing GC OFF because OBJC_DISABLE_GC is set

那很好,因为我使用ARC所以我不关心GC.当我构建单元测试时,与OCMock(2.0.1)的最新稳定版本链接,构建没有问题.在运行时,在上面的日志语句之后,我得到以下内容:

The test bundle at /Users/___/Library/Developer/Xcode/DerivedData/___-ayizwpehemunvodsdvczckkvarsh/Build/Products/Debug/___Tests.octest could not be loaded because its Objective-C runtime information does not match the runtime information required by the test rig. This is likely because the test rig is being run with Objective-C garbage collection disabled, but the test bundle requires Objective-C garbage collection. To enable Objective-C garbage collection for the test rig, run it in an environment without the OBJC_DISABLE_GC environment variable. 2012-03-06 10:29:32.812 …

cocoa objective-c ocmock xcode4 osx-lion

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

- [NSCFNumber count]:无法识别的选择器

我有一些核心数据代码精确地遵循Apple的示例代码(获取满足给定函数示例的获取属性值).我正在使用它来获取字段的最大值,所以当我插入该实体类型的下一个对象时,我可以增加它.

我无法让代码工作,直到我将Store Type切换NSXMLStoreTypeNSSQLiteStoreType,然后突然间一切似乎都在工作.但事实并非如此.我注意到它总会返回相同的值,即使我插入了较高的对象.但是,在我退出并重新打开(因此数据被持久化并重新读入)之后,它将使用新插入进行更新.

所以我在每次插入后开始提交和保存.在第一次"自动保存"之后,我得到以下错误(连续两次):

- [NSCFNumber count]:无法识别的选择器发送到实例0x100506a20

当我执行一次获取请求时,会发生这种情况(一行两次):

NSArray *objects = [context executeFetchRequest:request error:&error];
Run Code Online (Sandbox Code Playgroud)

更新

我通过Zombies工具运行我的代码,并且能够查看出现错误的对象.运行malloc以分配它的调用是:-[NSUserDefaults(NSUserDefaults) initWithUser:].由于我没有设置任何自己的默认值,我不知道这可能是什么对象.

更新2

我搜索了所有代码中的"发布",并注释掉静态分析器没有抱怨的每一个releaseautorelease那个.我仍然有错误.我甚至竟然在我的代码中注释掉每一个release/ autorelease仍然得到它.现在我很确定我自己的代码不会过度释放.

更新3

这篇文章似乎有同样的问题,但他的解决方案没有意义.他将结果类型从更改NSDictionaryResultTypeNSManagedObjectResultType,这会产生不正确的结果.而不是返回单个值(max我正在寻找的那个),它返回托管对象上下文中我的实体类的每个对象.

以下是堆栈跟踪的最顶层(当我第一次在异常时中断):

#0  0x7fff802e00da in objc_exception_throw
#1  0x7fff837d6110 in -[NSObject(NSObject) doesNotRecognizeSelector:]
#2  0x7fff8374e91f in ___forwarding___
#3  0x7fff8374aa68 in __forwarding_prep_0___
#4  0x7fff801ef636 in +[_NSPredicateUtilities max:]
#5  0x7fff800d4a22 in -[NSFunctionExpression expressionValueWithObject:context:]
#6  0x7fff865f2e21 …
Run Code Online (Sandbox Code Playgroud)

macos cocoa core-data objective-c nsfetchrequest

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

这是正常的自动终止行为吗?

我在我的应用程序中启用了自动终止。我将NSSupportsAutomaticTermination密钥添加到了plist,现在正在对其进行测试。这是我注意到的,我想知道这是否正常,或者是否有问题(以及可能有什么问题)。

  1. 启动应用
  2. 关闭其主窗口(也是唯一窗口)
  3. 切换回Xcode
  4. 其图标从Dock中消失
  5. Xcode的状态显示仍然显示它正在运行,我什至可以暂停其执行
  6. 几分钟后,状态表明它已完成运行

更新资料

我不确定该怎么做,但是我创建了一个新项目,唯一的变化是将上述键添加到plist,并且其行为方式相同。我还注意到该应用程序确实保留在活动监视器中,但CPU占用率为0%。这是什么意思呢?

macos cocoa objective-c osx-lion

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

用OCMock嘲笑KVO

我想测试Key-Value-Observation是否适用于我的一类.它有一个属性,这取决于另一个属性.它们的设置如下:

+ (NSSet *)keyPathsForValuesAffectingSecondProperty {
    return [NSSet setWithObjects:
            @"firstProperty",
            nil];
}

- (NSArray *)secondProperty {
    return [self.firstProperty array];
}
Run Code Online (Sandbox Code Playgroud)

我想运行一个单元测试来验证firstProperty更改时,绑定的对象是否secondProperty获得通知.起初我以为我可以使用+[OCMockObject observerMock],但它看起来只能用于NSNotificationCenter.测试这个的最佳方法是什么?

cocoa unit-testing objective-c key-value-observing ocmock

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

为什么静态分析器问题不会使我的CI构建失败?

在GitHub上有一个项目该项目在Travis CI上自动构建。即使我有一个静态分析器问题,我的代码(buildfixbranch,commit 3ebc41a8b4738bce926b39cc3869c6dce8bed9bc)的当前修订版也已成功。这是xcodebuild命令:

xcodebuild -workspace UnrarKit.xcworkspace -scheme UnrarKit -sdk macosx -configuration Release analyze test
Run Code Online (Sandbox Code Playgroud)

我还将整个项目的“将警告作为错误处理”设置为“是”(对于内部版本)。我从xcodebuild以下获得此输出:

The following commands produced analyzer issues:
  Analyze Classes/URKArchive.mm
(1 command with analyzer issues)
Run Code Online (Sandbox Code Playgroud)

xcodebuild在本地终端中复制了此文件,结果相同。

为什么xcodebuild仍然返回0并允许我的构建成功?xcodebuild如果结果无法使用,为什么要首先进行分析?如果是bug,我将其提交给Apple,但目前我有可能做错了事。

xcode static-analysis xcodebuild travis-ci

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