小编Ste*_*her的帖子

具有包装标签的静态表格单元的动态高度?

我的文字在纵向模式下是两行.当我切换到横向模式时,它适合单行.我通过故事板使用静态tableview单元格; 我怎样才能调整行的大小以适应?

屏幕是一个登录屏幕.

  • 第一个单元格包含一些解释文本
  • 第二个是用于输入帐户名称的文本字段
  • 第三个是用于输入密码的安全文本字段
  • 第四个(和最后一个)单元格包含登录按钮.键盘上的返回键会提交表单或根据需要切换焦点

uitableview ios uistoryboard

8
推荐指数
2
解决办法
8182
查看次数

存档时,Xcode中应用了哪些额外的设置?

我有一个iOS项目.为了响应Build(在方案中选择了发布配置),它的dsym重量为6.5MB.但是,当我存档时(在方案中选择了相同的配置),它的重量仅为2.9MB.

这不是学术问题.缺少的数据包括我的静态库的所有符号,这使我的崩溃日志变得不那么有用.

哪些设置可以解决选择相同配置的构建和存档之间的差异?

这是Xcode 5.0,虽然我认为我已经有这个问题了一段时间.

xcode ios

8
推荐指数
1
解决办法
333
查看次数

复制UITableViewCell

我正在tableView:cellForRowAtIndexPath:从nib文件中读取自定义表格单元格.这对我的目的很有用,除非它很慢.

现在,我知道从长远来看,正确的做法是在代码中完全创建单元格,并使用单个视图,依此类推.但这是一个原型,我不想付出那么多努力.

现在,如果我在UIViewController子类中只读取一次nib ,然后tableView:cellForRowAtIndexPath:复制它,我会很高兴.我的假设是复制比读取笔尖更快.

这是我用来加载笔尖的东西,我从viewDidLoad:(和retain之后)调用

-(id)loadFromNamed:(NSString*)name {
    NSArray *objectsInNib = [[NSBundle mainBundle] loadNibNamed:name
                                                          owner:self
                                                        options:nil];
    assert( objectsInNib.count == 1 );
    return [objectsInNib objectAtIndex:0];
}
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好.但问题是:我如何反复复制?它甚至可能吗?

我试过[_cachedObject copy][_cachedObject mutableCopy],但UITableViewCell不支持任何一份协议.

如果必须的话,我可以告诉他们忽略速度,直到我准备完全取下笔尖,但如果这里有一个低悬的水果,我宁愿让它快一点.

有任何想法吗?

iphone cocoa-touch objective-c uitableview ios

7
推荐指数
2
解决办法
8580
查看次数

为什么NSAssert1等而不是NSAssert?

我以为NSAssert不能使用printf说明符,但是这个:

NSAssert(0, @"%@%@", @"foo", @"bar");
Run Code Online (Sandbox Code Playgroud)

像你期望的那样工作:

*** Assertion failure in -[MyClass myMethod], <Path>/MyClass.m:84
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException',
    reason: 'foobar'
Run Code Online (Sandbox Code Playgroud)

那么,有什么用点NSAssert1,NSAssert2等时NSAssert的作品?

如果这很重要,可以使用Xcode 4.0和iOS 4.3 SDK.(如果没有,我会更新标签.)

cocoa cocoa-touch nsassert

7
推荐指数
1
解决办法
2403
查看次数

使用魔术词为类别添加前缀的惯例是什么?

具有类别的约定是在扩展Apple类时包含前缀.例如:

[string XXDataUsingUTF8];
Run Code Online (Sandbox Code Playgroud)

(是的,这是一个愚蠢的例子.只要顺其自然.)

什么我就不太清楚的是惯例是什么时候开始的标识符用copy,set,initnew.

例如:

[request setHTTPBodyWithKeyValues: keyValues];
Run Code Online (Sandbox Code Playgroud)

如果我添加我的前缀,这不再遵循"setters start with set"约定.

[request XXSetHTTPBodyWithKeyValues: keyValues];
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我在集合之后添加前缀,它不再是真正的前缀:

[request setXXHTTPBodyWithKeyValues: keyValues];
Run Code Online (Sandbox Code Playgroud)

这是不是非常有进口set,但我认为它变得更重要init,copy等等.

Apple在任何地方都记录过这个 什么是常用的?

objective-c categories

7
推荐指数
1
解决办法
285
查看次数

我可以判断一下iPhone是否有密码?

我正在开发一个应用程序,当你启动它时会要求输入PIN码.那不是很好,但我可以忍受它.问题是,每次手机从睡眠状态唤醒时,我都会被要求提供PIN码.结合操作系统要求输入密码,这太过分了.

有没有合法的方法来检测手机是否有唤醒所需的密码,所以在这种情况下我可以跳过要求PIN码?我不想知道PIN,我实际上并不关心它是否被锁定(例如,如果电话非常短暂地睡着了),我只想知道数据在某种程度上是"受保护的".

security iphone locking

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

将对象设置为nil与在dealloc中发送释放消息之间的区别是什么

我有对象:

MyClass *obj= [[MyClass alloc] init];
Run Code Online (Sandbox Code Playgroud)

有什么区别:

[obj release]; // Only obj own this object.
Run Code Online (Sandbox Code Playgroud)

和:

obj = nil;
Run Code Online (Sandbox Code Playgroud)

当我设置obj = nil时,iOS deallocs obj吗?

我有一个指针,有时我将它指向一个对象,有时则没有.所以,当我想要发布指针时,我必须检查它是否为零?

iphone objective-c ios

6
推荐指数
3
解决办法
3690
查看次数

显示证书详情?

当Safari看到不正确的证书时,它会为用户提供取消,接受它或显示证书详细信息的机会.我想在我的iOS应用中复制此行为.

要非常清楚,我对服务器方面不感兴趣,只是在客户端处理证书详细信息.

证书提示

我可以得到这样的提示.我已编写代码来处理Safari所做的取消继续按钮,但我不知道如何调用详细信息屏幕.仅编码我自己的类似屏幕似乎太复杂了.

证书细节

这个屏幕是否可以在Apple的一个框架中使用,还是我会被迫从头开始实现这个?

ssl-certificate nsurlconnection ios

6
推荐指数
0
解决办法
8691
查看次数

在build中更新dSYM中的CFBundleShortVersionString?

我在我的项目中使用它作为构建阶段:

export PLISTBUDDY="/usr/libexec/PlistBuddy"

export INFO="${CODESIGNING_FOLDER_PATH}/Info.plist"
export RXREVISION=`git describe --tags | perl -pi -E "s/[^-]+\-([^-]+).*/\1/"`
export RXVERSION=`git describe --tags | perl -pi -E "s/([^-]+)\-[^-]+.*/\1/"`
$PLISTBUDDY $INFO -c "add CFBundleVersion string $RXREVISION"
$PLISTBUDDY $INFO -c "set :CFBundleVersion $RXREVISION"
$PLISTBUDDY $INFO -c "add CFBundleShortVersionString string $RXVERSION"
$PLISTBUDDY $INFO -c "set :CFBundleShortVersionString $RXVERSION"
Run Code Online (Sandbox Code Playgroud)

这非常适合在构建的应用程序的Info.plist中更新构建版本,并且它不会改变我的源代码树.

我已尝试将更新版本脚本放在最后和链接阶段之前.无论哪种方式,它都能够影响对构建的应用程序的更改,但dSYM是从原始源代码树构建的.

构建的应用程序和构建的dSYM之间的版本号不匹配是一个问题.(HockeyApp在这里抛出一个错误.)

如果我在源代码树中更新Info.plist,我需要处理它的变化.这让我有两个选择,我可以看到:

  1. 将Info.plist置于源代码管理之下,让脚本直接编辑它.但这意味着我需要在每次构建后检查更改.
  2. 忽略Info.plist,让脚本直接编辑它.但有很多的其他的Info.plist的事情,我的源代码控制下想要的.

如何自动更新dSYM中的版本,而不必处理源代码树中的Info.plist更改每个构建?

另外,切线:我如何在dSYM中看到该版本?

xcode

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

带图像和文本字段的Autolayout表格单元格?

我正在寻找带有照片的表格视图单元格并使用自动布局包装文本.我已经通过自动布局管理了很多,但我对如何做到这一点感到茫然.

???????????????????????????????????????????????????????
? ???????????? ?????????????????????????????????????? ?
? ?          ? ? Title (might wrap)                 ? ?
? ?          ? ?????????????????????????????????????? ?
? ?  Photo   ? ?????????????????????????????????????? ?
? ?          ? ? Body text. May wrap, may contain   ? ?
? ?          ? ? multiple lines.                    ? ?
? ?          ? ?????????????????????????????????????? ?
? ????????????                                        ?
???????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

随着文本的扩展,我希望将照片保留在左上方并展开单元格.但是,单元格不应低于显示照片所需的最小值(带边距).

???????????????????????????????????????????????????????
? ???????????? ?????????????????????????????????????? ?
? ?          ? ? Title (might wrap)                 ? ?
? ?          ? ? Maybe even to two lines.           ? …
Run Code Online (Sandbox Code Playgroud)

uitableview ios autolayout

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