小编zou*_*oul的帖子

如何在ARC下使用块完成处理程序释放对象?

这是我的代码中分配对象的常见模式,让它使用完成处理程序执行一些操作并在处理程序中释放它:

LongOperation *foo = [[LongOperation alloc] init];
[foo runWithCompletion:^{
    // run some code and then:
    [foo autorelease];
}];
Run Code Online (Sandbox Code Playgroud)

这很好用,但是当我尝试将代码转换为ARC时,Xcode正确地抱怨它不能简单地autorelease从块中删除,因为这会使foo对象在离开作用域后被释放.

那么在ARC下编写这种模式的好方法是什么?我可以为foo:引入一个实例变量:

[self setFoo:[[LongOperation alloc] init]];
[foo runWithCompletion:^{
    // run some code and then:
    [self setFoo:nil];
}];
Run Code Online (Sandbox Code Playgroud)

......但代码不再是可重入的.

memory-management objective-c objective-c-blocks automatic-ref-counting

9
推荐指数
1
解决办法
838
查看次数

如何在Jekyll中列出同一类别的帖子?

我想列出与当前帖子具有相同类别的固定数量的最近帖子.这就是我所得到的:

{% for category_name in page.categories limit:1 %}
    <h2>Other articles in {{ category_name }}</h2>
    <ul>
        <!-- now what? -->
    </ul>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我知道site.categories,但我不知道如何下标字典.显然,site.categories.category_name从字面上看,寻找名为"category_name"的类别.

jekyll

9
推荐指数
2
解决办法
6948
查看次数

定时Objective-C代码

我想在Objective-C应用程序中添加一些自动化性能测试.(这是一款游戏,因此我想通过简单地运行一组测试来查看引擎关键部分的当前性能.)为此,我想编写一些时序支持例程,如下所示:

- (void) benchmarkSelector: (SEL) msg onObject: (id) target
{
    // run the selector thousands of times, print detailed stats
}
Run Code Online (Sandbox Code Playgroud)

问题是我对毫秒感兴趣,我担心调用performSelector基准测试代码会使结果偏差很多.你会怎么回事?我应该去objc_msgSend吗?

performance benchmarking objective-c

8
推荐指数
1
解决办法
4904
查看次数

如何在UIAlertView中对齐消息?

我想知道如何设置警报视图的委托消息的对齐方式.任何人都有解决方案,PLZ回复一些代码.

iphone xcode objective-c

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

计算器如何精确工作?

我想知道计算器如何精确地工作.例如,sin(M_PI)当以double精度计算时,值不完全为零:

#include <math.h>
#include <stdio.h>

int main() {
    double x = sin(M_PI);
    printf("%.20f\n", x); // 0.00000000000000012246
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我肯定想在用户输入sin(π)时打印零.我可以轻松地在1e-15的某个地方绕过来使这个特殊情况起作用,但这是一个黑客,而不是解决方案.当我开始像这样循环并且用户输入类似1e-20的东西时,他们得到零回归(因为四舍五入).当用户输入1/10并=重复点击键时会发生同样的事情- 当他达到舍入阈值时,他会得到零.

然而,有些计算器为sin(π)返回纯零,同时它们可以舒适地处理诸如(1e-20)/ 10之类的表达式.诀窍在哪里?

floating-point precision calculator

8
推荐指数
1
解决办法
2935
查看次数

是否代表用户喜欢页面?

我试图通过SDK让用户"喜欢"一个页面.用户已登录,我从cookie获得了有效的访问权限.我的APP已经要求权限read_streampublish_stream.我可以成功地做一些事情,比如张贴到他们的墙上等等.但是当我的APP试图"喜欢"一个页面时,我得到了错误:

OAuthException: (#3) Application does not have the capability to make this API call.
Run Code Online (Sandbox Code Playgroud)

我是否遗漏了其他一些许可,或者我的APP中是否有必须打开的设置?我在这里不知所措.

facebook oauth facebook-graph-api

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

打开项目时Xcode 4崩溃

完整断言如下!

我正在尝试在全新的Sandy Bridge iMac Core i5上以全新的XCode 4安装(4.0.2)打开我们的项目.这个项目在我的旧MacMini和我的合作伙伴的Core 2 Duo iMac上工作并继续工作.

我怀疑这可能是由于这台新机器从未安装过任何旧版本的XCode 4或XCode 3以及旧的SDK.只需4.02,随便随之而来.这是我能想到的唯一......也是我们在机器之间唯一的区别.确实下面指定的文件不存在...所以它产生PCH的问题可能是???

任何人都可以帮忙吗?

我们无法在新机器上打开我们的XCode项目,下面的断言最不友好......

谢谢!

ASSERTION FAILURE in /SourceCache/IDEFoundation/IDEFoundation-287/Framework/Classes/Index/IDEIndex.m:2186
Details:  Error launching clang to create PCH file: /Users/sukichima/Library/Developer/Xcode/DerivedData/LeapLanguage-gtjaysymsmxhiifrufylngcjwyxb/Index/PrecompiledHeaders/LeapLanguage_Prefix-bvjcknzwkkcgeydmvtyeuddafzgu_ast/LeapLanguage_Prefix.pch.pth
Error Domain=NSPOSIXErrorDomain Code=2 "The operation couldn’t be completed. No such file or directory"
Object:   <IDEIndex: 0x200c257c0>
Method:   -createPCHFile:willIndex:arguments:
Thread:   <NSThread: 0x2036dfe80>{name = (null), num = 12}
Hints:   None
Backtrace:
  0  0x0000000100949773 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in IDEKit)
  1  0x000000010006d394 _DVTAssertionFailureHandler (in DVTFoundation)
  2  0x0000000100564e3d __46-[IDEIndex createPCHFile:willIndex:arguments:]_block_invoke_0 (in IDEFoundation)
  3  0x0000000100005fdc __38-[DVTDispatchLock performLockedBlock:]_block_invoke_0 (in …
Run Code Online (Sandbox Code Playgroud)

iphone ios xcode4

8
推荐指数
2
解决办法
3880
查看次数

从应用访问"公共"图形API资源?

我正在创建一个试图使用"公共"Facebook内容的Web应用程序.

它不是你传统的"Facebook应用程序",因为我实际上并没有注册Facebook用户使用它,但用户将是所有服务器端.

我已经到了某一点,我必须对某些"公共"内容使用"access_token",我已经能够生成app access_token,但这对我感兴趣的公共数据不起作用访问.

access_token是通过创建的

https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=client_credentials
Run Code Online (Sandbox Code Playgroud)

不适合

https://graph.facebook.com/chickfila/notes?access_token=CODE_FROM_ABOVE
Run Code Online (Sandbox Code Playgroud)

无需登录即可公开访问...

http://www.facebook.com/ChickfilA?sk=notes
Run Code Online (Sandbox Code Playgroud)

任何方式给应用程序本身一个用户级access_token?

facebook http facebook-graph-api

8
推荐指数
1
解决办法
3730
查看次数

以字节为单位给出的NSData大小不准确

我拍了一张13.3MB的图像并将其添加到XCode中.我知道在编译时,XCode会执行一些技巧来降低文件大小.我做了这个,在转换成数据后测试图像现在有多大:

UIImage *image = [UIImage imageNamed:@"image.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
NSLog(@"length: %i", data.length);
Run Code Online (Sandbox Code Playgroud)

我回来的时间是26758066.如果那是以字节为单位,那么它读取为26.7MB.图像突然变得如此之大?我是否还有另一种方法可以在不首先通过UIImage的情况下以数据形式获取图像?

编辑:进一步的测试表明这是有效的,并带来~13.3MB的数据长度 - 预期的数量:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSLog(@"length: %i", data.length);
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uiimage nsdata ios

8
推荐指数
1
解决办法
9728
查看次数

Xcode 6持续集成无法找到配置文件

使用Xcode 5,我可以手动将配置文件复制到他们需要的位置.Xcode 6的情况并非如此.我已将服务器添加到团队中,但仍然无法构建.我可以在同一台机器上从Xcode构建好.我收到以下消息:

Code Sign error: No matching provisioning profiles found: No provisioning profiles containing one of the following signing identities was found:
Run Code Online (Sandbox Code Playgroud)

它应该工作,因为Xcode工作,但Apple越来越隐藏这些设置,我没有办法解决这个问题.

xcode continuous-integration osx-server

8
推荐指数
1
解决办法
3397
查看次数