小编Tar*_*w45的帖子

当Fragment的请求权限时,在Activity的onRequestPermissionsResult中接收到错误的resultCode

我有一个带有targetSdkVersion = 23的应用程序,compileSdkVersion = 23,主要活动设置如下

- HomeActivity (AppCompatActivity)
  - FragmentA (V4 Fragment)
    - ViewPager
      - NestedFragmentA (V4 Fragment)
      - NestedFragmentB (v4 Fragment)
      - NestedFragmentC (v4 Fragment)
      - NestedFragmentD (v4 Fragment)
  - Fragment B (V4 Fragment)
  - Fragment C (V4 Fragment)
Run Code Online (Sandbox Code Playgroud)

在HomeActivity中

public static final String PERMISSION = Manifest.permission.WRITE_EXTERNAL_STORAGE

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    Log.i("Logger", "Request Code: " + String.valueOf(requestCode));

    // Handle permission request result
}
Run Code Online (Sandbox Code Playgroud)

我从@CommonsWare读到这个答案,

/sf/answers/2321937201/

嵌套片段中的onRequestPermissionsResult永远不会被调用(在我的情况下,它会返回HomeActivity)但我很好,我会手动通知结果片段.

但问题是,当我在HomeActivity中请求许可时,一切正常.

HomeActivity

// Request permission from HomeActivity …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-permissions android-6.0-marshmallow

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

如何获取具有重复列的行数?

让我们说以下是我的表

id | name | topic | reply
...
1 | user1 | 00001 | yes              ## replied on topic 00001
2 | user2 | 00002 | yes              ** replied on topic 00002
3 | user1 | 00001 | yes              ## replied on topic 00001
4 | user5 | 00001 | no
5 | user1 | 00001 | yes              ## replied on topic 00001
6 | user1 | 00002 | no
7 | user2 | 00002 | yes              ** replied …
Run Code Online (Sandbox Code Playgroud)

mysql

5
推荐指数
1
解决办法
212
查看次数

应用程序试图以模态方式呈现一个活动控制器:UIImagePickerController

我在这方面奋斗了2天,并且相信这是我应该寻求帮助的那一刻.在我搜索SOF一段时间后,没有任何答案可以解决我的问题.这是我的申请......

在申请中,

  • 设备是iPad,iOS 6
  • RootViewController是NavigationController
  • TopViewController是TabBarController
  • 在这个TabBarController中,我从导航栏的右侧栏按钮呈现一个popoverController
  • 在呈现弹出窗口时,有一个按钮,允许用户通过拍摄新图像或从现有图像中选择图像.
  • 为了选择新的,我提出了ViewController UIImagePickerController以允许用户使用divice相机拍照.presentModalViewController:animated:如果iOS <6,并且presentViewController:animated:completion: for iOS> 6
  • 我还会在演示前隐藏状态栏
  • 要从现有照片中进行选择,我会使用presentPopoverFromBarButtonItem:permitArrowDirections:animated:
  • PopoverViewController也由一个TabBarController引用

这是问题所在

  • 如果用户首先尝试选择新的UIImagePickerController,则当前UIImagePickerController将始终失败,异常"应用程序尝试以模态方式呈现活动控制器<[尝试呈现的视图控制器的名称]>"
  • 但是,如果用户尝试从相机胶卷中选择一次图像然后尝试再次拍摄新图像,则不会失败.

这是我试过的

  • 来自RootViewController
  • 来自TopViewController(TabBarController)的礼物
  • 来自popoverViewController本身
  • 从TabBarController的选项卡中显示
  • 在演示之前隐藏popoverViewController
  • 来自popoverViewController中textField的resignFirstResponder

这是我正在使用的当前代码

// PopoverViewController, presented by a tab in TabBarController
- (IBAction)takePhoto:(id)sender {
    [self.delegate takePhotoWithDeviceCamera];
}

// A Tab in TabBarController, delegate of popoverViewController
- (void)takePhotoWithCamera {
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    if ([UIDevice OSVersion] < 6.0) {
        [self presentModalViewController:cameraPicker animated:YES];
    } else {
        [self presentViewController:cameraPicker animated:YES completion:nil];
    }
} …
Run Code Online (Sandbox Code Playgroud)

objective-c uiimagepickercontroller presentmodalviewcontroller ios5 ios6

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

将Rails部署为桌面应用程序

我刚刚开始RoR开发两周,到目前为止它是非常棒的编程语言.这让我印象深刻,以至于我开始考虑将客户项目的编程语言从PHP改为RoR.但我想知道的是,在本地计算机上使用它时,是否有可能使RoR Web应用程序看起来像Native App.到本机应用程序的术语,我的意思是..

  1. 用户每次启动计算机时都不必运行脚本/服务器rails服务器
  2. 通过Web浏览器访问它或其他东西都没问题.
  3. 可以使用Window 7或Window XP运行

其他建议是受欢迎的.(包括不使用RoR开发本地应用程序的原因)

ruby desktop-application ruby-on-rails

4
推荐指数
1
解决办法
4774
查看次数

我可以删除此权限吗?(它导致Android 5.0设备中的INSTALL_FAILED_DUPLICATE_PERMISSION)

我的测试人员表示他无法将Play应用程序中的应用安装到他的Nexus 5(Lollipop).他说他得到了这个错误

Unknown error code during application install “-505”
Run Code Online (Sandbox Code Playgroud)

我拿起手机试着通过adb安装应用程序,我收到了这个错误

Failure [INSTALL_FAILED_DUPLICATE_PERMISSION 
        perm=com.example.gcm.permission.C2D_MESSAGE 
        pkg=com.mailchimp.alterego]
Run Code Online (Sandbox Code Playgroud)

经过一番阅读,我从@Commonsware看到了这篇文章

http://commonsware.com/blog/2014/08/04/custom-permission-vulnerability-l-developer-preview.html

很明显,我的应用程序和Mailchimp应用程序(安装在我的测试人员手机上)都有重复的权限,com.example.gcm.permission.C2D_MESSAGE.然后我检查我的git日志,看看我什么时候将该行添加到我的AndroidManifest,发现它是在我实现GCM的时候.那时,我遵循了本教程

https://developer.android.com/google/gcm/client.html

在此输入图像描述

我想,我和Mailchimp开发人员都遵循相同的教程,添加了相同的权限,现在我们的应用程序都有重复的权限.

所以,我从AndroidManifest中删除了该权限,现在我可以在我的测试人员的手机上安装我的应用程序了.我通过从我的PHP脚本发送到包到GCM服务器的测试GCM消息,应用程序仍然得到GCM消息.

那么,是否会因为缺少许可而提出其他问题,无论如何获得该许可的重点是什么?(因为没有它,我的应用程序仍然收到GCM消息)

我担心的是,如果我们的应用程序使用的是需要权限的插件/库.如果有另一个安装的应用程序使用相同的库,我们将无法在Lollipop设备上安装我们的应用程序,不是吗?

- 注意 -

我已经读过这个问题了,很少有人对我所做的事情提出同样的建议,取消许可.但没有人谈论我们做之后会发生什么,或者为什么我们必须添加它.

INSTALL_FAILED_DUPLICATE_PERMISSION ... C2D_MESSAGE

- 编辑1 -

我回到教程,教程是对的,这是我错误的实现

在此输入图像描述

我(和Mailchimp开发人员)应该使用我们的应用程序包+ .permission.C2D_MESSAGE的名称添加权限,而不是仅复制并粘贴com.example.gcm.permission.C2D_MESSAGE

<permission android:name="com.mycompany.myappname.permission.C2D_MESSAGE" 
            android:protectionLevel="signature" />
Run Code Online (Sandbox Code Playgroud)

但是,这给我提出了另一个问题,教程说,如果我们不添加此权限或名称与模式不匹配,应用程序将无法获取消息.但是当我测试时,即使我删除时,我收到了消息这个漏洞......很奇怪.

android google-cloud-messaging android-permissions android-5.0-lollipop

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

与"CGRectMake"坐标混淆

从以下代码

// yPos = 0, width = 100, height = 150
[imagesMutable enumerateObjectsUsingBlock: ^(UIScrollView verticalScroll, NSUInteger idx, BOOL *stop){
  [verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, yPos, width, height)]]
  // some code
  yPos += (height + 15)
}];
Run Code Online (Sandbox Code Playgroud)

比方说,如果imagesMutable得到3个对象.当我从某个地方读到CGRectMake正在使用笛卡尔坐标时(x = 0,y = 0将在左下角).所以,它应该是

[verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, 0, 100, 150)]]
[verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, 165, 100, 150)]]
[verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, 330, 100, 150)]]
Run Code Online (Sandbox Code Playgroud)

这应该意味着

First CGRectMake should has bottom left at (0, 0) and top right at (100, 150)
Second CGRectMake should has bottom left at …
Run Code Online (Sandbox Code Playgroud)

objective-c uikit cocos2d-iphone ios5

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

在iPad的存储空间内存储1000多张图像

我正在使用的是iPad(仅限)的某种目录应用程序,用于我的客户公司.他们有1000多种产品.每个产品可以有多个图像.可以从Web服务设置每个产品是否在应用程序上显示.因此,例如,过期产品的数据和图像将不会存在于应用内.当我的客户决定与Web服务同步数据时.将刷新所有数据,将下载所有图像.必须删除任何过时的数据或未使用的数据.

问题是,他希望这个应用程序即使没有互联网连接也能脱机工作.

存储所有产品的数据很好,因为我从Web服务中提取JSON格式的所有数据并将它们解析为NSMutableDictionary对象.即使他们将包含1000多种产品的数据,它应该没问题(我猜).

但是对于图像,我不知道应该如何将它们保存在设备存储器中以及引用它们的最佳方式.每张图片的大小应为10Kb或更小.

我目前的方法(我能想到的)是

  • 将所有产品的数据存储在NSMutableDictionary中,并使用NSArchiver的方法archiveRoodObject:toFile(或者只使用[NSMutableDictionary writeToFile:atomically])
  • 以某种方式将所有图像存储在设备存储中
  • 创建一个数组/字典包含所有现有的图像名称和路径,用作参考并将其存储在NSArchiver中(或者也可以只使用[NSMutableDictionary writeToFile:atomically]).同步后不在此引用内的任何图像都将被删除.

这是我以前客户项目之前做过的方法.但该项目的应用程序包含不到100个图像.并且,我觉得我做错了.

所以,如果您有任何好的建议,请告诉我.欢迎任何建议.

注意:我阅读了一些关于将图像存储到CoreData中的封闭主题.但是,我现在不想尝试,因为我之前没有任何经验,而且这个当前的项目时间紧迫.所以,如果不是真的需要,我很乐意以后再尝试.

最后

我决定像Graver说的那样,迁移我的应用程序以使用CoreData.但是,我可能会先尝试使用writeToFile来存储所有产品的信息,看看它是怎么回事.正如格拉弗所说,尝试新事物也不错.最终,我们会得到一些东西.

object ios

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

将NSDecimalNumber与NSDecimalNumber相乘,返回0

我知道不应该问这类问题.但是,我在这里坚持了几天没有任何线索.所以,我真的需要帮助.

我有一个核心数据对象,比方说,产品.

//产品
NSDecimalNumber*数量
NSDecimalNumber*价格

我要做的是总结价格并将其设置为标签.我在这里搜索并发现一些话题说NSDecimalNumber不能做标准匹配操作,因为它是一个包装实际值的对象.它必须通过decimalNumberByAddingdecimalNumberByMultiplyingBy来完成.所以,我写了下面的代码,

NSDecimalNumber *totalPrice = [[NSDecimalNumber alloc] initWithDouble:0.0];
[self.productArray enumerateObjectsUsingBlock:^(Product *product, NSUInteger idx, BOOL *stop) {
    [totalPrice decimalNumberByAdding:[product.price decimalNumberByMultiplyingBy:product.quantity]];
    NSLog(@"%@", totalPrice);
    NSLog(@"%@", totalPrice.doubleValue);
    NSLog(@"%@", totalPrice.decimalValue);
}];
Run Code Online (Sandbox Code Playgroud)

这些NSLog都没有显示正确的结果.他们既没有显示0或NULL

但是,如果我NSLog下面的代码,可以显示正确的结果.

[product.price decimalNumberByMultiplyingBy:product.quantity]
Run Code Online (Sandbox Code Playgroud)

你能帮我指出我在这里想念的是什么吗?

iphone objective-c ios

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

我真的需要Macbook来开发Ruby on Rails吗?

我开始学习Ruby on Rails,但这个问题让我烦恼.

当我访问很多Ruby on Rails网站并与很多Ruby on Rails开发人员交谈时,我知道,他们中的大多数人都在使用Macbook进行开发.

即使我知道Ubuntu也是开发的好平台.但是,为什么没有那么多人使用它.关键是,与Macbook Pro相比,使用Ubuntu的笔记本电脑便宜得多.在我的位置差不多500美元,这对我来说是相当多的钱.但是,如果Macbook真的更好,我可以付钱.

那么,有什么优点和缺点我不知道吗?而且,我真的需要Macbook来开发Ruby on Rails吗?

ruby-on-rails ruby-on-rails-3

0
推荐指数
1
解决办法
2023
查看次数