小编Mik*_*keS的帖子

iOS 7:为整个应用程序禁用UINavigationBar Translucency

有没有办法为整个应用程序禁用UINavigationBar Translucency?

我知道使用[self.navigationController.navigationBar setTranslucent:NO]可以解决单个控制器的这个问题,但我的应用程序中有很多UINavigationBars,这是一个非常繁琐的解决方案.

我试过了[[UINavigationBar appearance] setTranslucent:NO],但令人惊讶的是,不支持该功能.这样做会导致Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Illegal property type, c for appearance setter, _installAppearanceSwizzlesForSetter:'

如果我必须,我可以通过我的整个应用程序设置UINavigationBars来逐个禁用半透明,但必须有一些更优雅的解决方案来解决这个问题...

uinavigationbar ios ios7

55
推荐指数
3
解决办法
2万
查看次数

__unused标记行为/用法(GCC与Objective-C)

我刚刚了解了在使用GCC编译时可以使用的__unused标志,我了解的越多,我的问题就越多......

为什么编译没有警告/错误?我特意告诉编译器我不会使用变量似乎很奇怪,然后当我使用它时,事情正常进行.

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self foo:0];
}

- (void)foo:(NSInteger)__unused myInt
{
    myInt++;
    NSLog(@"myInt: %d", myInt);  // Logs '1'
}
Run Code Online (Sandbox Code Playgroud)

另外,以下两种方法签名之间有什么区别?

- (void)foo:(NSInteger)__unused myInt;

- (void)foo:(NSInteger)myInt __unused;
Run Code Online (Sandbox Code Playgroud)

gcc objective-c ios

35
推荐指数
2
解决办法
9003
查看次数

嵌套片段和后栈

Back Stack是否支持与Android中嵌套片段的交互?

如果是的话,我做错了什么?在我的实现中,后退按钮完全忽略了我将此事务添加到后台堆栈的事实.我希望它不是因为嵌套片段的问题,而是我做错了什么.

以下代码位于我的一个片段中,用于将新片段与当前显示的任何嵌套片段交换:

     MyFragment fragment = new MyFragment();
     FragmentTransaction ft = getChildFragmentManager().beginTransaction();
     ft.setCustomAnimations(R.animator.slide_in_from_right, R.animator.slide_out_left, R.animator.slide_in_from_left, R.animator.slide_out_right);
     ft.addToBackStack(null);
     ft.replace(R.id.myFragmentHolder, fragment);
     ft.commit();
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-nested-fragment

18
推荐指数
1
解决办法
2万
查看次数

Eclipse中的Android:从LogCat复制/粘贴(仅"文本")

有没有办法从Eclipse LogCat复制/粘贴,只能复制/粘贴记录的"文本"?

通常当我从LogCat复制/粘贴时,它会复制所有内容,包括"Level","Time","Application","Tag"和"Text",大部分时间,我唯一想要的是"文本".

这是一个极端的烦恼,特别是在复制/粘贴多行时.

eclipse logging android

17
推荐指数
1
解决办法
3021
查看次数

在iOS 7中使用iOS 6 Style Segmented Control?

iOS 7设备上的分段控件是否可以显示为iOS 6版本的控件?

我们还没有为接口重新设计做好准备,而新的平板控制与其他用户界面并不相符.如果可能的话,现在最好保留iOS 6风格.

为了澄清,我正在使用iOS 6.1 Base SDK进行编译.我知道这是我问题的"明显"答案,但它不起作用.大多数其他UI元素将通过这样做显示iOS 6样式,但是像UIAlertViewUIActionSheet,而UISegmentedControl不是.但是,不像UIAlertViewUIActionSheet,UISegmentedControls不喜欢"系统"项目; 他们应该能够在iOS 6模式下显示.

编辑:我认为如果我最终包含一张图片(可能应该从一开始就做到这一点)会有所帮助.但是,我提供的答案确实解决了这个问题.另外,回想起来,看起来这可能是iOS 6风格,它只是显示错误,看起来像iOS 7风格.

在此输入图像描述

uisegmentedcontrol ios ios6 ios7

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

NSRange:range.location!= NSNotFound vs. range.length> 0

我正在浏览我的一个应用程序中的一些旧代码,并在可能存在问题的领域修复代码.

我看到很多旧代码使用...

NSRange range = //determine range here....
if(range.length > 0)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

该代码是"罚款",还是应该将其改为此?

NSRange range = //determine range here....
if(range.location != NSNotFound)
{
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

这两种方法基本上是否相同?

objective-c nsstring ios nsrange

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

使用NSCoding进行解码:密钥的值是否存在?

使用NSCoding和解码值时,有没有办法判断给定键是否存在值?换句话说,我想要做的是......

if([decoder valueExistsForKey:@"myKey"])   //valueExistsForKey is not a real method :(
{
    NSInteger *myInt = [decoder decodeValueForKey:@"myKey"];
}
else
{
    //handle special case
}
Run Code Online (Sandbox Code Playgroud)

问题是我在我的应用程序中有旧版本的文档没有"myKey"值,如果他们没有它,使用0表示myInt(如果解码不存在的密钥会发生什么)不是我想要的行为.但是,我不能只解码并检查myInt == 0,因为它可能合法地等于0.

由于valueExistsForKey方法似乎不存在,我该如何复制此行为?

objective-c nscoding

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

JSON数组结构变体

以下是3种JSON数组结构格式......

第一个是JSON.org上概述的那个,我熟悉的是:

格式#1

{"People": [
  {
    "name": "Sally",
    "age": "10"
  },
  {
    "name": "Greg",
    "age": "10"
  }
]}
Run Code Online (Sandbox Code Playgroud)

第二个是略微变化,命名数组的元素.我个人并不关心它; 你没有在代码中命名数组的元素(它们是通过索引访问的),为什么要用JSON命名它们?

格式#2

{"People": [
  "Person1": {
    "name": "Sally",
    "age": "10"
  },
  "Person2": {
    "name": "Greg",
    "age": "10"
  }
]}
Run Code Online (Sandbox Code Playgroud)

最后一个是另一个变体,非常类似于格式#2,但我有一个预感,这个是不正确的,因为它似乎有不属于的额外花括号.

格式#3

{"People": [
  {
    "Person1": {
      "name": "Sally",
      "age": "10"
    }
  },
  {
    "Person2": {
      "name": "Greg",
      "age": "10"
    }
  }
]}
Run Code Online (Sandbox Code Playgroud)

同样,我相信Format#1是有效的,因为它是JSON.org中概述的JSON数组格式.但是,格式#2格式#3怎么样?那些被认为是有效的JSON吗?如果是,那些格式来自哪里?我没有在JSON.org或维基百科上看到它们.

json

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

使用动画进行iOS单元测试

为什么使用Xcode 5.0和XCTesting进行以下单元测试?我的意思是,我理解底线:1 == 0未评估.但为什么不进行评估呢?如何才能使其失败?

- (void)testAnimationResult
{
    [UIView animateWithDuration:1.5 animations:^{
        // Some animation
    } completion:^(BOOL finished) {
        XCTAssertTrue(1 == 0, @"Error: 1 does not equal 0, of course!");
    }];
}
Run Code Online (Sandbox Code Playgroud)

xcode unit-testing ios xctest

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

Cocoapods复制资源上的Xcode构建失败

我最近在Xcode中将GPUImage添加到我的podfile中,如下所示:

pod 'GPUImage', '~> 0.1.4'
Run Code Online (Sandbox Code Playgroud)

我不认为我遇到的问题是GPUImage特有的,而是与GPUImage是我添加的唯一包含额外资源的pod有关.

我的构建因"Shell脚本调用错误,退出代码23"而失败.

./Pods/GPUImage/framework/Resources/lookup.png
./Pods/GPUImage/framework/Resources/lookup_amatorka.png
./Pods/GPUImage/framework/Resources/lookup_miss_etikate.png
./Pods/GPUImage/framework/Resources/lookup_soft_elegance_1.png
./Pods/GPUImage/framework/Resources/lookup_soft_elegance_2.png
building file list ... rsync: link_stat "/Pods/GPUImage/framework/Resources/lookup.png" failed: No such file or directory (2)
rsync: link_stat "/Pods/GPUImage/framework/Resources/lookup_amatorka.png" failed: No such file or directory (2)
rsync: link_stat "/Pods/GPUImage/framework/Resources/lookup_miss_etikate.png" failed: No such file or directory (2)
rsync: link_stat "/Pods/GPUImage/framework/Resources/lookup_soft_elegance_1.png" failed: No such file or directory (2)
rsync: link_stat "/Pods/GPUImage/framework/Resources/lookup_soft_elegance_2.png" failed: No such file or directory (2)
done
sent 29 bytes  received 20 bytes  98.00 bytes/sec
total size is 0  speedup …
Run Code Online (Sandbox Code Playgroud)

xcode cocoapods gpuimage

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