XCode经常似乎失去了它的想法,并没有为代码系统类着色或提供正确的"代码感"建议.这无穷无尽令人沮丧.至少在其他三个场合提出了这个问题:
我已经通过项目版本切换到3.1兼容和3.2兼容,在每次更改之前和之后完全重启XCode没有任何效果.
我重建了代码检测索引并完全重启了XCode而没有任何变化.
我已经构建了我的项目以确保没有错误并重新启动.
我已将我的文件(没有.svn文件)复制到不同的位置 - 同样的问题.
我已经完全禁用了"占位符"这个参数,因为当我键入太快时它们搞砸了我的文档......我要求的是"esc"键显示正确的属性和方法列表.
我最近告诉铸造[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 castRun Code Online (Sandbox Code Playgroud)
铸造价值"解决"了问题,我宁愿不写10行,其中一个会做...
这不好吗?我会在哪里遇到问题?
也:
字典来自JSON库...在这种情况下,NULL是有效值,所以也许并不是NSDictionary在缺少密钥时返回它们,而是键实际上是键,并且值是实际上是null.
这个人想出了一个非常简洁的工具来生成类依赖图 - 但是,它依赖于解析你的源代码并寻找#import指令.
这很整洁,但我有很多问题.其中最重要的是它不考虑导入的导入,也不考虑前缀标题,也不考虑导入所引用的文件中的类是否实际被使用.
我想做更类似的事情class-dump并检查存储在Mach-O文件中的Objective-C元数据,以生成类依赖关系的内存中表示.
我不想从头开始做这个,所以我想知道:
我有一个与计算Objective-C中的工作日有关的问题.
我需要为X给定的工作日添加工作日NSDate.
例如,如果我有一个日期:2010年10月22日星期五,我加上2个工作日,我应该得到:2010年10月26日星期二.
提前致谢.
假设我从某个函数中获取了一个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数组中的字节,并根据给定的编码进行解释.
这仍然让我想知道它是否真的复制了字节,或者只是在内部指向它们(我基本上只是在做一个演员).
这个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)
作者试图在这里完成什么?
我有一个库,它消耗a FILE *并将数据输出到另一个FILE *.
我想处理这个库的输入和内存中该库的输出,而无需读取/写入磁盘上的文件.
我们在iOS中这样做 - 所以将库作为一个单独的应用程序运行并且使用stdin/ stdout不是(据我所知)一个可行的选项.
我正在寻找一个 Javascript UI 组件,它允许我在屏幕一侧的分层树中的项目之间拖动一条线到屏幕另一侧的分层树中的项目(类似于 BizTalk 的“地图”UI) 。
我搜索了“Javascript Tree Map”等,但只找到了“Treemap”...这根本不是我要找的。
我完全可以接受 HTML5 和使用画布。
如果已经有东西了,我只是不想自己写这个。
谢谢!
我不确定我是否能很好地表达我在寻找什么,所以让我提供一个例子:
我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) 在一个非常简单的应用程序上运行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)