在NSInteger
为iOS开发时,我应该何时使用vs int?我在Apple示例代码中看到,当将值作为参数传递给函数或从函数返回值时,它们使用NSInteger
(或NSUInteger
).
- (NSInteger)someFunc;...
- (void)someFuncWithInt:(NSInteger)value;...
Run Code Online (Sandbox Code Playgroud)
但是在一个函数中,它们只是int
用来跟踪一个值
for (int i; i < something; i++)
...
int something;
something += somethingElseThatsAnInt;
...
Run Code Online (Sandbox Code Playgroud)
我读过(被告知),其NSInteger
是引用在任何一个64位或32位环境中,为什么使用一个整数一个安全的方式int
呢?
您将如何设置手势识别器,以便您可以同时使用UISwipeGestureRecognizer和UIPanGestureRecognizer?这样,如果您快速触摸并快速移动(快速滑动),它会将手势检测为滑动,但如果您触摸然后移动(触摸和移动之间的短暂延迟),它会将其检测为平移?
我已经尝试了requireGestureRecognizerToFail的各种排列,并且没有完全帮助,它使得如果离开SwipeGesture然后我的平移手势将向上,向下和向右工作但是滑动手势检测到任何左移动.
我一直在使用Xcode 4.2直到上周,我使用我的.ipa文件的大小来估计应用程序商店中我的应用程序的大小(我保持在20MB以下)并且它非常一致.我在2天前升级到Xcode 4.3并且它有一个新功能,可以在"存档"您的应用程序后向您显示"估计的应用程序商店大小",它给我的估计大小是我的.ipa文件大小的2倍根据Xcode 4.3,我一直在猜测我的应用程序商店大小及其超过20MB的方式!
那么,哪一个是对的?:o
编辑:刚刚发布了今天的应用程序,看起来ipa是我最接近的猜测,应用程序在商店中显示为17.6MB,而.ipa是(现在)16.7MB,3.3MB二进制.
我设置了一些XCTest
我的应用程序的单元测试,并希望每次运行测试时间为它在新安装的应用程序的运行品牌.目前,当我运行后续测试时,它会在之前运行的同一个应用程序中运行测试,之前的测试已经更改了很多状态信息.
有没有办法表明,当你运行单元测试时,它应该在你的应用程序的新版本上运行测试?
我在我的iOS应用程序中嵌入了几个字体,并发现它们在标签和按钮中没有正确居中,它们在y轴上太高,有什么解决方案吗?起初我以为它只是一个我正在使用的便宜的字体文件,但后来我用Adobe字体尝试了(只是为了看)它仍然有问题.
我可以使用他们的xml输入/输出格式将视频上传到youtube,但他们关于如何使用json-c实现上传的文档令人沮丧地稀疏.例如,我在身体中粘贴的json数据的"关键"是什么?或者换一种方式,如何将json字符串添加到请求的正文中?
我有一个照片库视图,使用a UICollectionView
,a UICollectionViewFlowLayout
,pagingEnabled
水平滚动,一次只显示一个视图.
工作得很好,直到我试图旋转它...
当我旋转设备时,在willRotateToInterfaceOrientation:duration:
我更新它collectionView.contentOffset
所以它保持在正确的项目上,我调整currentCell的大小,以便它动画到新的尺寸. 问题出在两个状态之间的动画中,"前一个"方向从左上角开始动画,并在其他单元格中查看. 什么是我做错了,因为在屏幕上制作动画的视图是FUBAR?
这是它在行动中的样子:
http://www.smugmug.com/gallery/n-3F9kD/i-BwzRzRf/A(忽略不稳定的视频,那就是Quicktime的错:p)
这是我的willAnimateRotationToInterfaceOrientation:duration
:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
// Update the flowLayout's size to the new orientation's size
UICollectionViewFlowLayout *flow = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
flow.itemSize = CGSizeMake(self.collectionView.frame.size.width, self.collectionView.frame.size.height);
} else {
flow.itemSize = CGSizeMake(self.collectionView.frame.size.width, self.collectionView.frame.size.height);
}
self.collectionView.collectionViewLayout = flow;
[self.collectionView.collectionViewLayout invalidateLayout];
// Get the currently visible cell
PreviewCellView *currentCell = (PreviewCellView*)[self.collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForRow:_currentIndex inSection:0]]; …
Run Code Online (Sandbox Code Playgroud) 所以,假设我有一个父母孩子的存储,父母与孩子(parent.children)有一对多的关系,他们都有名字.现在,在父母的初始提取中,我可以指定排序描述符以按名字顺序将它们恢复,但我如何按顺序请求子项?如果我做了一个[parent.children allObjects]它只是让它们混淆了,我每次都必须对事实进行排序.
谢谢,山姆
截至昨天,我的应用程序能够通过oAuth 2.0与google(youtube)进行身份验证,第一次没问题,但第二次(重新身份验证,相同的应用程序+同一用户),当我为accessToken交换requestToken时,我得到了一个错误:
error : invalid_grant
Run Code Online (Sandbox Code Playgroud)
我正在使用:
grant_type = authorization_code
Run Code Online (Sandbox Code Playgroud)
他们建议的.过去两天前发生的事情是重新验证,网页会说"您之前已使用此应用程序进行过身份验证,是否要再次授予其访问权限?".改变了什么或者我做错了什么?
在Swift中可以选择变量参数吗?我尝试了两种有意义的方法,但都没有编译:
func myFunc(queryFormat: String?...) {
}
Run Code Online (Sandbox Code Playgroud)
要么
func myFunc(queryFormat: String...?) {
}
Run Code Online (Sandbox Code Playgroud)
注意:第一个实现在技术上编译,但如果您尝试打开它:
if let queryFormatUnwrapped = queryFormat {
...
}
Run Code Online (Sandbox Code Playgroud)
你得到一个错误Bound value in a conditional binding must be of Optional Type
,它向我表明它将它视为一个可选字符串数组而不是一个可选的字符串数组(这有点愚蠢).
ios ×7
objective-c ×6
iphone ×4
xcode ×3
youtube ×2
app-store ×1
cocoa-touch ×1
core-data ×1
fonts ×1
gdata ×1
google-api ×1
json ×1
nsinteger ×1
swift ×1
types ×1
unit-testing ×1
xcode4 ×1
xctest ×1