假设我有一个接受void (*)(void*)函数指针的函数用作回调函数:
void do_stuff(void (*callback_fp)(void*), void* callback_arg);
Run Code Online (Sandbox Code Playgroud)
现在,如果我有这样的功能:
void my_callback_function(struct my_struct* arg);
Run Code Online (Sandbox Code Playgroud)
我可以安全地这样做吗?
do_stuff((void (*)(void*)) &my_callback_function, NULL);
Run Code Online (Sandbox Code Playgroud)
我已经看过这个问题并且我已经看过一些C标准,它们说你可以转换为'兼容函数指针',但我找不到'兼容函数指针'的含义.
好吧,我认为现在是时候在互联网上找到这个问题的正式位置:如何UIScrollView使用分页和缩放制作一个photoviewer.欢迎UIScrollView黑客同行.
我UIScrollView启用了分页功能,而且我显示UIImageViews的内置照片应用程序.(这听起来很熟悉吗?)
我在github上找到了以下项目:
http://wiki.github.com/andreyvit/ScrollingMadness
其中显示了启用分页时如何在滚动视图中实现缩放.如果其他人尝试这一点,我实际上必须删除UIScrollView子类并使用本机类,否则它不起作用.我认为这是因为3.0 SDK中的滚动视图截获触摸事件的变化.
因此,想法是在开始缩放时删除所有其他视图,并将当前视图移动到(0,0)scrollview,更新contentsize等等.然后当您缩放回1.0f时,它会添加其他视图并放置事情都恢复了顺序.
总之,该项目完全在模拟器,但在设备上还有所调整的观点,这看起来像它的事实引起我们正在改变的一些讨厌的运动contentsize/ offset等的观点被调整.您必须执行此视图移动,否则您可以向左平移其他视图留下的空白.
我在3.0 SDK发行说明的"已知问题"中找到了一个有趣的注释:
UIScrollView:缩放后,内容插入将被忽略,内容将保留在错误的位置.
这听起来就像这里发生的事情.放大后,视图将在屏幕外移动,因为您已更改了偏移等.
我已经花了好几个小时就已经花了好几个小时,我正在慢慢地意识到这不会起作用.
Three20的照片浏览器是不可能的:它太重了,并且有太多不必要的UI和其他行为.
内置的Photo应用程序似乎有些神奇.如果您放大图像并平移到远边,当前照片将独立于其旁边的照片移动,这不是您在使用标准时尝试使用的照片UIScrollView.
我见过有关嵌套的讨论,UIScrollView但我真的不想去那里.
有没有人用标准管理这个UIScrollView(并在2.2和3.0 SDK中工作)?我不喜欢滚动我自己的缩放+反弹+平移+分页代码.
是否可以从调试器获取源代码的行号(或任何有助于调试问题所在的位置),以显示问题的来源?
我收到一个错误:
-[NSCFArray objectAtIndex:]: index (-1 (or possibly larger)) beyond bounds (9)
Run Code Online (Sandbox Code Playgroud)
这显然意味着我在某些时候会超出界限,但是如果有可能我想获得更多信息来帮助我解决问题.
我正在设置断点并尝试逐行完成程序,但这是一个繁琐的过程.谢谢!
我想向我的老板推荐Git作为一个新的源代码控制系统,因为我们在90年代被VSS(哎哟)困住了,但是工具和第三方支持还不够好吗?
具体来说,我说的是类似于TortoiseSVN的GUI前端,体面的视觉差异/合并支持,以及诸如电子邮件提交通知和来自第三方(如IDE和构建系统)的一般支持.
虽然这将由程序员使用,但我们团队中确实需要这种东西.我不想让每个人都使用新工具,甚至是新的源代码控制范例(分布式),除了命令行应用程序和一些在线教程.这将是一个倒退.
所以你觉得...... Git准备好了吗?Git有哪些不错的工具以及第三方开发应用程序支持哪些工具?
编辑:我原来的问题非常模糊,所以我正在更新它,专门询问可用工具列表和第三方支持Git.也许我们可以获得一个包含一系列内容的社区wiki帖子.
我也不认为'使用颠覆'是一个充分的答案.除了离线编辑之外,使用分布式源控制系统还有其他原因 - 私有和廉价分支就是其中之一.
文档只是说它意味着"符号自称的时间",但这意味着什么?"#Self"是什么意思?
当我使用乐器时,如果"#Self"等于100,那么"Self"也是100.0.
我正在开发一款iPhone应用程序
我从root.plist中读取了一个键,如下所示:
NSString *Key1Var = [[NSUserDefaults standardUserDefaults] stringForKey:@"Key1"];
Run Code Online (Sandbox Code Playgroud)
("Key1"是PSMultiValueSpecifier已在root.plist中设置了默认字符串值的)
一旦用户进行设置,这工作正常.但是如果用户在进行任何设置之前运行应用程序,他将获得nil"Key1".在这种情况下,我期待我为"Key1"设置的默认值.我需要做什么,以便用户不必进行设置,以使应用程序第一次运行?
问候,哈里什
我正在将一个字典(单词列表,而不是类)加载到NSSet中作为NSStrings.然后我重复发送这个消息-containsObject:someNSString.但它总是返回错误.我写了一些代码来测试它:
NSLog(@"Random from dictionary: %@", [dictionary anyObject]);
NSString *test = [NSString stringWithFormat:@"BEMIRED"];
NSLog(@"To match this word: %@", test);
if ([dictionary containsObject:test])
NSLog(@"YES!");
Run Code Online (Sandbox Code Playgroud)
在日志中我得到以下内容:
Random from dictionary: BEMIRED
To match this word: BEMIRED
Run Code Online (Sandbox Code Playgroud)
(我错过了"是的!")
当我尝试使用CFShow(字典)时,我可以看到它实际上包含字符串和所有内容.一个例子:
0 : <CFString 0xc3bd810 [0x1386400]>{contents = "BEMIRED"}
3 : <CFString 0xdf96ef0 [0x1386400]>{contents = "SUBJECTIFIED"}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?谢谢!
我想在我的iphone应用程序中为en_GB和其他'en'子语言本地化字符串,但是XCode和iphone拒绝让这种情况发生.我为en_GB和en_US(我尝试了连字符和下划线)创建了一个"Localizable.strings"的本地化用于测试目的,但它们只是无法识别.唯一有效的语言代码是"en"(在XCode中显示为"English").
我不敢相信这是不可能的,所以我做错了什么?我也希望得到典型的"级联"行为,如果在子语言中找不到字符串,例如"en_GB",则应该从"en"中获取,如果可能的话.救命?
即使使用标准字体大小,我也遇到了UITextField文本被模糊/消除锯齿的问题.当控件是第一响应者时,文本将显得清晰,但在失去焦点时再次模糊:
alt text http://www.mikeweller.com/images/blog/UITextFieldBlur.png
有人知道如何解决这个问题吗?
根据这个堆栈溢出答案,类型名称上的"_t"后缀在C中保留.当typedef用于创建新的opaque类型时,我习惯在名称中使用某种类型的指示.通常我会选择类似的东西,hashmap_t但现在我还需要别的东西.
C中的类型是否有任何标准命名方案?在其他语言中,使用类似CapsCase Hashmap是常见的,但我看到的很多C代码根本不使用大写.CapsCase也可以很好地使用库前缀,比如XYHashmap.
因此在C中命名类型是否有通用规则或标准?
iphone ×5
ios ×3
objective-c ×3
xcode ×3
c ×2
cocoa ×1
cocoa-touch ×1
devtools ×1
git ×1
instruments ×1
localization ×1
nsset ×1
nsstring ×1
uikit ×1
uiscrollview ×1
uitextfield ×1