简单的问题; 这些值之间是否存在差异(BOOL和bool之间是否存在差异)?一位同事提到他们在Objective-C中评估不同的东西,但是当我查看各自的.h文件中的typedef时,YES/TRUE/true都被定义为,1
而NO/FALSE/false都被定义为0
.真的有什么区别吗?
我想做这样的事情,但我不能得到合作的语法.
static const UIColor *colorNavbar = [UIColor colorWithRed: 197.0/255.0 green: 169.0/255.0 blue: 140.0/255.0 alpha: 1.0];
Run Code Online (Sandbox Code Playgroud)
我想我可以定义宏,但它们很难看.
每当我旋转一个有屏幕的屏幕时,我就会看到这种情况发生UITableView
.我发现它发生在willRotate
和我的同事之间的didRotate
方法调用之间UIViewController
也见过它在其他地方,通常在旋转周围.它直到最近才开始发生,我们对如何应对它感到困惑(谷歌搜索不会以错误的形式显示错误消息).有没有其他人遇到过这个知道怎么做的事情?
在我的应用程序中,我目前将所有代码分成静态库,以便更轻松地为实际应用程序和代码的单元测试设置xcode项目目标.这个问题是我想把我的大部分xib文件放在静态库中,但似乎当我运行我的应用程序并尝试引用xib时它无法找到它,除非它包含在实际中应用程序的目标而不是静态库目标.静态库中是否可以包含xib文件和其他资源,这些文件可以被同一个库中的代码引用,如果是,如何?
我需要找到一个好的Lua到JavaScript转换器; luaforj.org上的lua2js已经过时(大约3年左右,看起来它不适用于Lua 5.1),我还没有在Google上找到任何东西.
有没有人有任何其他转换器的经验?它应该适用于Lua 5.1,最好是基于.NET的,但.NET不是必需的.一个javascript lua解释器也可以工作.
我正在为命令行可执行文件编写一个包装类.这个exe接受来自stdin的输入,直到我在命令提示符shell中命中ctrl + c,在这种情况下,它根据输入到stdout打印输出.我想模拟ctrl + c按c#代码,将kill命令发送到.Net进程对象.我试过调用Process.kill(),但这似乎没有给我进程的StandardOutput StreamReader.可能有什么我做得不对劲?这是我正在尝试使用的代码:
ProcessStartInfo info = new ProcessStartInfo(exe, args);
info.RedirectStandardError = true;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
Process p = Process.Start(info);
p.StandardInput.AutoFlush = true;
p.StandardInput.WriteLine(scriptcode);
p.Kill();
string error = p.StandardError.ReadToEnd();
if (!String.IsNullOrEmpty(error))
{
throw new Exception(error);
}
string output = p.StandardOutput.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
但是,当我手动运行exe时,输出总是为空,即使我从stdout获取数据.编辑:这是c#2.0顺便说一句
我刚刚尝试在新的x86 android模拟器中运行我公司的应用程序,但我们的应用程序依赖于谷歌地图API,这在谷歌提供的android sdk版本17的x86系统映像中不可用.我的直觉说答案是不,但有可能以某种方式将谷歌apis纳入此系统映像吗?如果没有,是否有任何方法有条件地不使用谷歌地图等系统API,如果它目前正在使用的设备/模拟器上不存在?
我正在尝试模拟一个具有以下签名等效方法:
- (NSDictionary *) uploadValues:(BOOL)doSomething error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
我希望它返回一个小字典,以便我的测试可以确保代码正确使用字典.但是,无论我做什么,OCMock总是从方法中返回nil,无论我如何将其存根.错误在我正在测试的代码中以nil开头,这些是我尝试将其存根的不同方式:
NSError * error = nil;
[[[mock stub] andReturn:someDict] uploadValues:YES error:&error];
[[[mock stub] andReturn:someDict] uploadValues:YES error:nil];
[[[mock stub] andReturn:someDict] uploadValues:YES error:[OCMArg any]];
Run Code Online (Sandbox Code Playgroud)
并且它们都不起作用.OCMock是否支持处理作为存根消息参数,如果是,那么正确的方法是什么?
我想做一件简单的事; 从互联网上读取图像,将其保存到iphone上的应用程序文档目录中,然后从该文件中读回来,以便我以后可以用它做其他事情.编写文件工作正常,但当我尝试读回来时,我在GDB中得到一个EXC_BAD_ACCESS错误,我不知道如何解决.这是我的代码基本上是这样的:
-(UIImage *) downloadImageToFile {
NSURL * url = [[NSURL alloc] initWithString: self.urlField.text];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[paths release]
NSString * path = [documentsDirectory stringByAppendingString:@"/testimg.png"];
NSData * data = [[NSData alloc] initWithContentsOfURL:url];
[data writeToFile:path atomically:YES];
return [[UIImage alloc] initWithContentsOfFile:path];
}
Run Code Online (Sandbox Code Playgroud)
当我尝试从文件初始化UIImage时,代码在return语句中失败.有任何想法吗?
编辑:忽略添加最初是代码中的问题的版本.
请考虑以下代码:
@try {
if (something.notvalid)
{
return;
}
// do something else
} @catch (NSException *ex) {
// handle exception
} @finally {
NSLog(@"finally!");
}
Run Code Online (Sandbox Code Playgroud)
如果something
无效并且我从try中返回,代码是否@finally
执行?我相信它应该,但我已经说过的其他人不这么认为,我现在无法测试这一点.
objective-c ×5
iphone ×3
cocoa-touch ×2
.net-2.0 ×1
android ×1
boolean ×1
c# ×1
calayer ×1
command-line ×1
const ×1
converter ×1
exception ×1
file-access ×1
handle ×1
interpreter ×1
javascript ×1
lua ×1
mocking ×1
ocmock ×1
process ×1
uicolor ×1
unit-testing ×1
xib ×1