小编Jon*_*ess的帖子

使用故事板的利弊

我打算学习使用Story Boards开发应用程序.任何人都可以在使用StoryBoards时发布一些优点和缺点吗?

iphone storyboard ios5 uistoryboard

11
推荐指数
1
解决办法
5236
查看次数

结构成员初始化之间是否存在序列点?

结构成员初始化表达式之间是否有一个序列点?

例如,是否明确定义下面的代码将始终打印"a,b"?

#include <stdio.h>

typedef struct {
    char *bytes;
    int position;
    int length;
} Stream;

typedef struct {
    char a;
    char b;
} Pair;

char streamgetc(Stream *stream) {
    return (stream->position < stream->length) ? stream->bytes[stream->position++] : 0;
}

int main(void) {
    Stream stream = {.bytes = "abc", .position = 0, .length = 3};
    Pair pair = {.a = streamgetc(&stream), .b = streamgetc(&stream)};
    printf("%c, %c\n", pair.a, pair.b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c sequence-points language-lawyer

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

将非ARC项目转换为ARC

我有一个Xcode 3.2目标项目.我想将此项目转换为ARC以改进

我遵循这些步骤.

编辑 - >重构 - >转换为目标C ARC

我有一些.mm文件,我使用-fno-objc-arc禁用ARC.但即便如此

我遇到了很多错误(ARC问题).例如,主要在self = [super init]调用中,

错误是无法在init系列中的方法之外分配给self.能够

有人告诉我,我是按照正确的步骤吗?

objective-c ios5 automatic-ref-counting

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

无法调用封闭在封闭中的闭包?

如果我在另一个闭包中包装一个闭包,我就不能调用嵌套闭包.为什么不?我认为一个例子最能说明问题.

这个PHP代码:

function FInvoke($func) {
    $func();
}

FInvoke(function () { echo "Direct Invoke Worked\n"; });
Run Code Online (Sandbox Code Playgroud)

按预期工作并打印"直接调用工作".

但是,如果我稍微修改它以添加另一级别的间接,它将失败:

function FInvoke($func) {
    $func();
}

function FIndirectInvoke($func) {
    FInvoke(function () {
        $func();
    });
}

FIndirectInvoke(function () { echo "Never makes it here"; });
Run Code Online (Sandbox Code Playgroud)

失败消息是"致命错误:函数名称必须是第X行的file.php中的字符串"

php

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

为什么自定义TableViewCell不需要文件所有者?

我试图在Interface Builder中创建一个自定义的UITableViewCell,并将实际UITableViewCell的File的Owner和Custom Class设置为我的新自定义UITableViewCell类.我会从文件所有者那里挂起IBOutlets并在遇到错误时得到错误:

 TVCell *cell = (TVCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {

    NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:nil options:nil];

    for(id currentObject in topLevelObjects)
    {
        if([currentObject isKindOfClass:[TVCell class]])
        {
            cell = (TVCell *)currentObject;
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

最后我意识到你必须从UITableViewCell对象而不是文件所有者那里连接IBOutlets.为什么是这样?

谢谢

iphone cocoa-touch interface-builder uitableview ios

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

有没有办法将自定义字体添加到Xcode以从故事板中提供?

我知道如何添加随iOS应用程序一起提供的自定义字体文件.然后,我可以使用以下代码从代码自定义标签字体:

UIFont* font = [UIFont fontWithName:@"League Gothic" size:42];
self.topLabel.font = font;
Run Code Online (Sandbox Code Playgroud)

我担心的是,这样的定制将"感染"所有项目,并可能需要稍后进行一些重要的返工.有没有办法将字体文件包含到xCode本身,所以它识别它并让我从故事板字体控件中选择它?

xcode customization uilabel uifont uistoryboard

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