我正在处理一个在不同架构中需要不同参数的相机,是否有一个标志我可以检查我的mac是32位还是64位?我试过这个但似乎不起作用,我总是得到32位!:
#if defined(PER_ARCH_CFLAGS_x86_64)
NSLog(@"64bit!!");
#else
NSLog(@"32Bits!!");
#endif
Run Code Online (Sandbox Code Playgroud) 我想知道如何在标准C++中实现异步调用.
我有一个图像/视频处理程序,我想添加另一个功能/功能,但我希望它在另一个线程中运行或异步运行到原始线程.
我只是想在这个新线程中发生某些事情时通知主线程.(这不会总是发生,并且主线程没有理由等待这个新进程结束.因此我更喜欢异步调用,如果这比多线程编程更简单)
我希望我走在正确的道路上.
提前致谢.
伊格纳西奥.
更新:目前我还没有使用任何线程库,因为到目前为止我还不需要它.我在Boost中思考......这是个好主意吗?我应该从哪里开始如果我想开始一些异步调用?
我想在我的应用程序中编写一个不那么复杂但很大的文件,并且能够通过邮件发送它(使用MFMailComposeViewController)因为NSXMLElement和相关的类没有移植到iPhone SDK,我有什么选择来创建XML文档?提前致谢.
我有一个程序,它的许多类都有一些带有关键字const的运算符和方法,如下所示:
operator const char* () const;
operator char* ();
void Save(const char *name) const;
void Load(const char *name);
Run Code Online (Sandbox Code Playgroud)
第一:在方法声明结束时它是什么意思?是什么意思就像把它放在开头一样?
第二:为什么需要const版本和不需要const版本的operator()?
提前致谢.
我对多线程编程很陌生,并想知道它是否正常或者是否有类似的属性
@property BOOL shouldDoIt; //atomic
Run Code Online (Sandbox Code Playgroud)
它将用于在后台调用的循环中
- (void) loop{
// ... do stuff ...
if (self.shouldDoIt) {
[self doIt];
self.shouldDoIt = NO;
}
// ... do more stuff ...
}
Run Code Online (Sandbox Code Playgroud)
并在从主线程调用的方法中更改
- (void) methodCalledFromMainThread{
self.shouldDoIt = YES;
}
Run Code Online (Sandbox Code Playgroud)
我必须使其原子化或不改变任何东西吗?我知道原子与非原子相比速度慢,我的程序需要更快的速度,但如果不使用原子那么做if (shouldDoIt){ 可能会失败?
我想知道为什么这不会删除/清除运行make时生成的*.o文件?
# UNIX Makefile
CXX = g++
LD = g++
CXXFLAGS = -g
testlfunction: lfunction.o lfunctionlist.o lprocessor.o testlfunction.o
$(LD) -o $@ $^
clean:
rm *.o testlfunction
Run Code Online (Sandbox Code Playgroud)
在它用之前
$(RM) *.o testlfunction
Run Code Online (Sandbox Code Playgroud)
但它也不起作用;(
为什么是这样?
我正在尝试在Obj-c运行时引用中找到此方法
BOOL class_addMethod(Class cls, SEL name, IMP imp, const char *types)
Run Code Online (Sandbox Code Playgroud)
我想添加一个新的方法,如:
- [AClass drawWithFrame:(NSRect)rect inView:(id)view]
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经编写了一个C函数:
void drawWithFrameInView(id this, SEL this_cmd, NSRect frame, id view){
...
}
Run Code Online (Sandbox Code Playgroud)
现在我准备做了:
BOOL success = class_addMethod(NSClassFromString(@"AClass"),
@selector(drawWithFrame:inView:),
(IMP)drawWithFrameInView,
"v@:@:@:");
Run Code Online (Sandbox Code Playgroud)
但是success从来没有,我尝试了同样的方法,使用更简单的签名方法,并且它有效.所以我认为问题是最后一个参数:"v@:@:@:"
在这种情况下我应该通过什么才能使我的新方法有效?
例如,使用git-diff,当显示diff时,我可以执行以下操作以显示10条周围的上下文线。
git diff -U10
Run Code Online (Sandbox Code Playgroud)
我可以用git-add --patch做类似的事情吗?理想情况下,我想:
git add -p -U10
Run Code Online (Sandbox Code Playgroud)
但是我没有找到这样的选择。有没有这样的东西?
我在操场上编写了用于测试(学习)目的的代码:
import Cocoa
func DoIt(a: Int, b: Int, c :Int = 0) -> Int {
return a + b + c;
}
func DoIt(a: Int, b: Int, c :NSObject) -> Int {
return a * b * c.description.lengthOfBytesUsingEncoding(NSUTF8StringEncoding);
}
Run Code Online (Sandbox Code Playgroud)
当我使用它时,我得到了这个:
DoIt(4, 5, 6); // result: 20
var obj = NSObject(); // result: NSObject
DoIt(4, 5, obj); // result: 520
Run Code Online (Sandbox Code Playgroud)
我期待第一个函数DoIt(Int, Int, Int)在执行时DoIt(4, 5, 6);被调用,但显然正在调用另一个函数.6去哪儿了?看起来它6被隐含地转换成了一个NSObject目标-c,它至少会引发警告.
为什么是这样?
奇怪的是,如果我最后c: Int需要(通过删除= …
我希望这个问题不是太傻,但标准C++中最基本的类是什么?宾语?宾语?
class MyObject : public object{ ...
Run Code Online (Sandbox Code Playgroud)
我得到"令牌之前的预期类名"
是否有显示标准c ++类继承的地图,图表或图像? 这样的东西,但对于C++?
objective-c ×4
c++ ×3
cocoa ×2
asynchronous ×1
atomic ×1
cocoa-touch ×1
git ×1
iphone ×1
macos ×1
makefile ×1
swift ×1
xcode ×1
xml ×1
xmlwriter ×1