问题列表 - 第23079页

目标行动uicontrolevents

我必须在这里遗漏一些明显的东西,但......

UIControl有一个方法

- (void)addTarget:(id)target action:(SEL)action forControlEvents: (UIControlEvents)controlEvents
Run Code Online (Sandbox Code Playgroud)

它允许您添加要在任何给定的controlEvent发生时调用的操作.ControlEvents是一个事件的位掩码,它告诉你触摸是否下降,内部,或被拖动等等,其中大约有16个,你或他们在一起,当它们中的任何一个发生时被调用.

选择器可以具有以下签名之一

- (void)action
- (void)action:(id)sender
- (void)action:(id)sender forEvent:(UIEvent *)
Run Code Online (Sandbox Code Playgroud)

这些都没有告诉你控制事件位掩码是什么.UIEvent略有不同,它与实际的触摸事件有关,而且(我认为)不包含UIControlEvent.发送方(UIControl)也无法找到控制事件.

我想有一个处理大量控制事件的方法,因为我有一些共同的代码,无论发生了哪些事件或事件,但我仍然需要知道UIControlEvents用于某些特定处理.

我错过了一种方法来找出在调用操作时使用了什么UIControlEvents,或者我是否真的必须将我的代码分成

-(void)actionWithUIControlEventX;
-(void)actionWithUIControlEventY;
Run Code Online (Sandbox Code Playgroud)

events action objective-c targets

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

如何在Perl中正确使用编码为Windows-1251的环境变量?

我在Windows中设置了TEST=abc£一个使用Windows-1252代码页的环境变量.现在,当我运行Perl程序时,test.pl这个环境值正确.

当我调用另一个Perl代码- test2.pltest1.pl无论是system(..)Win32::Process,环境自带乱码.

有人可以提供信息,为什么会这样,以及解决它的方法?

perl我使用的版本是5.8.

如果我的理解是正确的,在perl内部使用utf-8,那么初始过程 - test1.plWindows-1252→ 收到它utf-8.当我们调用另一个进程时,我们应该转换回Windows-1252代码页吗?

windows perl character-encoding

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

OpenGL漫反射照明着色器Bug?

橙皮书第16.2节列出了实施漫射照明:

void main()
{
  vec3 N = normalize(gl_NormalMatrix * gl_Normal);
  vec4 V = gl_ModelViewMatrix * gl_vertex;
  vec3 L = normalize(lightPos - V.xyz);
  gl_FrontColor = gl_Color * vec4(max(0.0, dot(N, L));
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我移动相机时灯光会发生变化.另一方面,当我改变

  vec3 N = normalize(gl_NormalMatrix * gl_Normal);
Run Code Online (Sandbox Code Playgroud)

to vec3 N = normalize(gl_Normal);

我获得了像固定管道一样工作的漫射光.

什么是gl_NormalMatrix,删除它做了什么,...这是橙皮书中的一个错误......还是我不正确地设置我的OpenGl代码?

[为完整起见,片段着色器只复制颜色]

vertex-shader fragment-shader

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

Java,HashMaps和使用字符串作为键 - 字符串值是否存储两次?

如果我有一个看起来像这样的HashMap:

HashMap<String, MyObject>

如果String键是一个字段MyObject,该字符串值是否存储两次?

所以当我添加条目时:

_myMap.put(myObj.getName(), myObj);

我是否在内存方面使用了两倍的字符串大小?或者Java在幕后做了哪些聪明的事情?

谢谢

java string hashmap string-interning

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

LLVM JIT段错误.我究竟做错了什么?

它可能是基本的东西,因为我刚开始学习LLVM ..

下面创建一个阶乘函数并尝试git并执行它(我知道生成的func是正确的,因为我能够静态编译并执行它).但是我在执行函数时遇到分段错误(在EE-> runFunction(TheF,Args)中)

#include "llvm/Module.h"
#include "llvm/Function.h"
#include "llvm/PassManager.h"
#include "llvm/CallingConv.h"
#include "llvm/Analysis/Verifier.h"
#include "llvm/Assembly/PrintModulePass.h"
#include "llvm/Support/IRBuilder.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/ExecutionEngine/JIT.h"
#include "llvm/ExecutionEngine/GenericValue.h"


using namespace llvm;


Module* makeLLVMModule() {
  // Module Construction
  LLVMContext& ctx = getGlobalContext();
  Module* mod = new Module("test", ctx);
  Constant* c = mod->getOrInsertFunction("fact64",
  /*ret type*/                           IntegerType::get(ctx,64),
                                         IntegerType::get(ctx,64),
  /*varargs terminated with null*/       NULL);

  Function* fact64 = cast<Function>(c);
  fact64->setCallingConv(CallingConv::C);
  /* Arg names */
  Function::arg_iterator args = fact64->arg_begin();
  Value* x = args++;
  x->setName("x");


  /* Body */
  BasicBlock* block = …
Run Code Online (Sandbox Code Playgroud)

c++ llvm

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

如何在Android上为单个联系人设置铃声?

如何仅向选定的联系人应用铃声?

我找到了一种方法来设置适用于所有联系人的默认铃声,但这不是我的目标.

我希望应用程序有一个按钮("应用要联系的铃声"),当单击时,它会开始activityForResult显示手机上所有联系人的列表.选择联系人后,联系活动将关闭并返回一个URI给联系人.然后,应用程序需要将选定的铃声应用于该特定联系人.

用于显示和选择活动的联系人的代码已经实现,并且似乎适用于该应用程序.

android contacts addressbook ringtone

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

如何加快通过互联网将数据保存到数据库?

我正在使用C#,Entity Framework和SQL Server 2008 Express.
我通过互联网连接到数据库.
加快将数据保存/更新到数据库的最佳方法是什么?
将180条记录保存到数据库需要87秒.
将相同数量的记录保存到本地(在同一台计算机上)SQL Server上只需3.5秒.

对于我保存/更新的每个记录,我检查数据库中
是否存在具有此主键的记录,如果它不存在,我只需保存它,
如果它存在,我使用ObjectContext.ApplyCurrentValues(entitySetName,currentEntity)方法更新它.

c# entity-framework sql-server-2008

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

为什么struct小于16个字节会更好

我正在研究结构; 如果实例大小小于16个字节,一些书建议创建struct .

为什么?

谢谢你的回复.

.net

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

混合c ++标准字符串和windows API

许多Windows API采用指向缓冲区和大小元素的指针,但结果需要进入c ++字符串.(我在这里使用windows unicode,所以它们是wstrings)

这是一个例子: -

#include <iostream>
#include <string>
#include <vector>
#include <windows.h>

using namespace std;

// This is the method I'm interested in improving ...
wstring getComputerName()
{
    vector<wchar_t> buffer;
    buffer.resize(MAX_COMPUTERNAME_LENGTH+1);
    DWORD size = MAX_COMPUTERNAME_LENGTH;

    GetComputerNameW(&buffer[0], &size);

    return wstring(&buffer[0], size);
}

int main()
{
    wcout << getComputerName() << "\n";
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是编写getComputerName函数的最佳方法,以便它更好地适应C++,还是有更好的方法?除非我错过了什么,否则我没有看到任何方式直接使用字符串而不通过向量?它工作正常,但不知何故看起来有点难看.问题不在于特定的API,它只是一个方便的例子.

c++ windows

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

如果删除"LINE 3",fib(n)需要多少额外的函数调用?

我在面试时得到了这个问题,不知道如何计算答案.
如果删除"LINE 3",fib(n)需要多少额外的函数调用?答案应该是n.

int fib(int n) {
  if(n == 0) return 0;
  if(n == 1) return 1;
  if(n == 2) return 1; //LINE 3 HERE <---

  return fib(n - 1) + fib(n - 2);
}
Run Code Online (Sandbox Code Playgroud)

algorithm complexity-theory fibonacci

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