小编Ste*_*eve的帖子

XCode语法着色破碎

XCode经常似乎失去了它的想法,并没有为代码系统类着色或提供正确的"代码感"建议.这无穷无尽令人沮丧.至少在其他三个场合提出了这个问题:

Xcode语法突出显示的问题

xcode代码感觉颜色/完成不起作用

Xcode:代码丢失语法着色

我已经通过项目版本切换到3.1兼容和3.2兼容,在每次更改之前和之后完全重启XCode没有任何效果.

我重建了代码检测索引并完全重启了XCode而没有任何变化.

我已经构建了我的项目以确保没有错误并重新启动.

我已将我的文件(没有.svn文件)复制到不同的位置 - 同样的问题.

我已经完全禁用了"占位符"这个参数,因为当我键入太快时它们搞砸了我的文档......我要求的是"esc"键显示正确的属性和方法列表.

xcode objective-c codesense

6
推荐指数
2
解决办法
3989
查看次数

NSDictionary stringForKey:并将[NSNull null]强制转换为NSString*

我最近告诉铸造[NSNull null](NSString*)是"可怕的".

但是,如果键不在字典中,-[NSDictionary stringForKey:]方法将返回[NSNull null],如果我不进行转换,编译器会对我大喊大叫.

我错过了什么吗?

编辑:

我的错误......我想我可能会开始看到这个问题......

正如大家所指出的那样,在NSDictionary上没有stringForKey:方法,是的,当我问这个问题时我正在考虑用户默认值...所以我回去看看我在做什么......这里是:

NSString * someValue = (NSString*)[myDictionary objectForKey:@"key"];
if (someValue == (NSString*)[NSNull null]) ...
Run Code Online (Sandbox Code Playgroud)

如果在这种情况下我不做演员,我会收到以下错误:

warning: comparison of distinct Objective-C types 'struct NSNull *' and 'struct NSString *' lacks a cast
Run Code Online (Sandbox Code Playgroud)

铸造价值"解决"了问题,我宁愿不写10行,其中一个会做...

这不好吗?我会在哪里遇到问题?

也:

字典来自JSON库...在这种情况下,NULL是有效值,所以也许并不是NSDictionary在缺少密钥时返回它们,而是键实际上是键,并且值是实际上是null.

iphone objective-c

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

使用Objective-C元数据生成类依赖图

这个人想出了一个非常简洁的工具来生成类依赖图 - 但是,它依赖于解析你的源代码并寻找#import指令.

这很整洁,但我有很多问题.其中最重要的是它不考虑导入的导入,也不考虑前缀标题,也不考虑导入所引用的文件中的类是否实际被使用.

我想做更类似的事情class-dump并检查存储在Mach-O文件中的Objective-C元数据,以生成类依赖关系的内存中表示.

我不想从头开始做这个,所以我想知道:

  • 它已经完成了吗?
  • 是否有一个开源库,它将为我提供提取此信息所需的基础工具(一个库,它检查Mach-O文件并创建包含在其中的Objective-C信息的外观 - 这样我可以迭代所有类,它们的方法,属性,ivars等,并扫描对其他类的引用)我认为class-dump的源代码是一个很好的起点.
  • 如果你有这方面的经验,我正在努力实现可行性吗?
  • 我需要克服哪些障碍?

mach-o objective-c objective-c-runtime

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

我如何仅向NSDate添加工作日?

我有一个与计算Objective-C中的工作日有关的问题.

我需要为X给定的工作日添加工作日NSDate.

例如,如果我有一个日期:2010年10月22星期五,我加上2个工作日,我应该得到:2010年10月26日星期二.

提前致谢.

objective-c core-foundation

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

内存管理:NSString的stringWithCString:encoding:

假设我从某个函数中获取了一个C字符串:

char * mystring = SomeCFunction(...);

我拥有这个字符串(当我完成时,我负责释放它).

如果,在Objective-C中,我创建了一个NSString *using:

NSString * mynsstring = [NSString stringWithCString:mystring 
                                           encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

我还有责任释放原来的C字符串吗?

我假设答案是肯定的,但是我在文档中找不到明确的答案 - 而相反方法的功能(cStringUsingEncoding)虽然很明显,却让我暂停,因为它为你处理cString释放.

如果答案是肯定的,那么我还要负责确保在使用之前我没有释放c字符串NSString *,或者函数是否为我复制字符串?我问这个是因为文档stringWithCString说它:

返回一个字符串,其中包含给定C数组中的字节,并根据给定的编码进行解释.

这仍然让我想知道它是否真的复制了字节,或者只是在内部指向它们(我基本上只是在做一个演员).

c memory-management objective-c core-foundation

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

不清楚Javascript片段

这个Javascript MD5实现让我感到困惑.

在全局空间中,作者声明了一个var:

var hexcase = 0; 
Run Code Online (Sandbox Code Playgroud)

稍后,将出现以下方法:

function rstr2hex(input)
{
  try { hexcase } catch(e) { hexcase=0; }
  var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
  var output = "";
  var x;
  for(var i = 0; i < input.length; i++)
  {
    x = input.charCodeAt(i);
    output += hex_tab.charAt((x >>> 4) & 0x0F)
           +  hex_tab.charAt( x        & 0x0F);
  }
  return output;
}
Run Code Online (Sandbox Code Playgroud)

我不明白的路线是:

try { hexcase } catch(e) { hexcase=0; }
Run Code Online (Sandbox Code Playgroud)

作者试图在这里完成什么?

javascript

6
推荐指数
2
解决办法
177
查看次数

我可以在iOS上的C/Objective-C中创建内存映射的FILE*吗?

我有一个库,它消耗a FILE *并将数据输出到另一个FILE *.

我想处理这个库的输入和内存中该库的输出,而无需读取/写入磁盘上的文件.

我们在iOS中这样做 - 所以将库作为一个单独的应用程序运行并且使用stdin/ stdout不是(据我所知)一个可行的选项.

c objective-c ios

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

需要:HTML 5 / Javascript UI 组件来执行“匹配”/“数据映射”UI

我正在寻找一个 Javascript UI 组件,它允许我在屏幕一侧的分层树中的项目之间拖动一条线到屏幕另一侧的分层树中的项目(类似于 BizTalk 的“地图”UI) 。

我搜索了“Javascript Tree Map”等,但只找到了“Treemap”...这根本不是我要找的。

我完全可以接受 HTML5 和使用画布。

如果已经有东西了,我只是不想自己写这个。

谢谢!

我不确定我是否能很好地表达我在寻找什么,所以让我提供一个例子:

BizTalk 地图 UI http://geekswithblogs.net/images/geekswithblogs_net/Chilberto/WindowsLiveWriter/BizTalkMapComparison BetweenTableLoopinga_B5B9/image_6.png

html javascript

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

Iphone UIButton背景颜色

UIButton在循环中以编程方式创建了一些s但是我在设置按钮的背景颜色方面遇到了一些问题.

按钮的颜色始终显示为白色.但是我只使用backgroundcolor中的2种颜色.例如:红色:255绿色:0蓝色:200

这是我用来添加按钮的代码.

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(80, 20 + (i*75), 200, 75);
    button.layer.cornerRadius = 10;
    button.layer.borderWidth = 1;
    [button setTitle:@"saf" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(moveLocation:) forControlEvents:UIControlEventTouchUpInside];
    [button setBackgroundColor:[UIColor colorWithRed:255 green:180 blue:200 alpha:1]];
    button.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [scrollView addSubview:button];
Run Code Online (Sandbox Code Playgroud)

iphone objective-c background-color uibutton

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

如何使用GLKView的帧缓冲区避免使用逻辑缓冲区存储?

在一个非常简单的应用程序上运行Xcode的OpenGL ES诊断,该应用程序切换到第二个帧缓冲区并返回(适当使用glClear和glInvalidateFramebuffer),在切换到第二个帧缓冲区时显示有关逻辑缓冲区存储的警告:

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
    // At this point, GLKView's framebuffer is bound

    // Clear (to avoid logical buffer load)
    glClear(GL_COLOR_BUFFER_BIT);

    // Invalidate (to avoid logical buffer store)
    glInvalidateFramebuffer(GL_FRAMEBUFFER, 1, (GLenum[]){ GL_COLOR_ATTACHMENT0 });

    // Switch to our own framebuffer, and attach a texture as the color attachment
    // At this point, Xcode's OpenGL ES tool warns:
    //  "For best performance keep logical buffer store operations to a minimum."
    glBindFramebuffer(GL_FRAMEBUFFER, _framebuffer);
    glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, _texture, 0);

    // Clear (to …
Run Code Online (Sandbox Code Playgroud)

opengl-es ios glkit

5
推荐指数
0
解决办法
327
查看次数