相关疑难解决方法(0)

使用UITextBorderStyleNone为UITextField设置填充

我想为我使用自定义背景UITextFields.这工作正常,除了我必须使用UITextBorderStyleNone它使它看起来漂亮的事实.这会强制文本粘在左边而不进行任何填充.

我可以手动设置填充,使其看起来类似于UITextBorderStyleRoundedRect使用我的自定义背景图像吗?

padding uitextfield ios

390
推荐指数
18
解决办法
20万
查看次数

使用Objective-C中的类别覆盖方法

我可以使用类类别来覆盖已使用类别实现的方法吗?像这样:

1)原始方法

-(BOOL) method {
  return true;
}
Run Code Online (Sandbox Code Playgroud)

2)覆盖方法

-(BOOL) method {
  NSLog(@"error?"); 
  return true; 
}
Run Code Online (Sandbox Code Playgroud)

这会起作用,还是非法的?

objective-c categories

87
推荐指数
3
解决办法
5万
查看次数

UITableView backgroundColor在iPad上始终为白色

我正在做一个项目.我有很多UITableViews设置为清晰的颜色.他们的观点背景颜色设置为我的自定义颜色,iPhone上的一切都很好.

这个问题出现在iPad上!我几乎尝试了所有东西,但我UITableView的颜色是白色.

我检查了其他主题,例如:UITableView backgroundColor在iPad上总是灰色,但没有任何效果.另外,我的问题不是灰色,它像雪一样白!

可能是什么原因?

objective-c uitableview ipad ios uibackgroundcolor

75
推荐指数
6
解决办法
2万
查看次数

抑制实例方法覆盖链接器警告框架xcode

我有一个库,它开始在XCode 4.4下抛出几个链接器警告.警告是"ld:warning:instance方法'methodName:'在类别中来自类中的覆盖方法"

该框架仍然可以正常工作,我认为编写它的公司将在下一个版本中纠正这个问题,但暂时这些警告非常烦人.有没有办法在不禁用所有链接器警告的情况下关闭它们?

xcode linker warnings frameworks

22
推荐指数
1
解决办法
5297
查看次数

在覆盖类别中的类实例方法时,如何抑制链接器警告

需要使用类别覆盖方法.我也意识到这样做的危险(这是另一个类中的私有类,没有人会编写另一个重写类别方法,所以没有保证未定义的行为).我已经看到了很多类似的问题,但它们都解决了使用类似这样的事情来抑制编译器警告:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"

// do your override

#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud)

然而,这仍然留下链接器警告.在Xcode 4.6中,是否有可能为我认为安全的特定覆盖摆脱它?

这是一个示例问题的GitHub示例项目.

objective-c clang

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

抑制链接器警告:"来自Y的类别中的元方法X覆盖Z中类的方法"

我故意使用类别来覆盖我知道已经在主类上实现的方法.我知道这通常是设计薄弱的标志 - 拜托,没有讲座 - 但在这种情况下我不能干净地继承.我知道调酒也可能是一种选择.

但是现在,我怎么能抑制这个警告呢?llvm抛出一个编译器警告我可以禁用(diagnostic ignored "-Wobjc-protocol-method-implementation").但随后链接器也抱怨.

这提出了一个类似的问题,但正在寻找一个不同的答案.如何告诉链接器不要抱怨?

谢谢.

linker objective-c ios objective-c-category

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

调用[NSBundle mainBundle]时XCTest失败

我有一些代码[NSBundle mainBundle]在某些时候调用,主要是读取/设置首选项.当我对方法进行单元测试时,测试失败,因为测试的mainBundle不包含该文件.

这是一个众所周知的问题,Apple不会修复,因为他们认为这不是一个bug:

他们回复的要点是XCTest通过返回它自己的主bundle而不是测试目标的bundle来正常工作.

以前我们的代码库是用一个类别覆盖NSBundle+mainBundle类的方法来解决这个问题.但这很危险,因为覆盖类别中现有方法的行为是未定义的.

如果在类别中声明的方法的名称与原始类中的方法相同,或者在同一个类(或甚至是超类)上的另一个类别中的方法相同,则关于在哪个方法实现中使用哪个方法实现的行为是未定义的.运行.

实际上Xcode警告你:

类别正在实施一种方法,该方法也将由其主要类实现

那么,解决这个问题的正确方法是什么?

unit-testing ocmock nsbundle ios xctest

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