小编psc*_*ang的帖子

从NSData或UIImage中查找图像类型

我正在从第三方提供的URL加载图像.URL上没有文件扩展名(或文件名)(因为它是一个模糊的URL).我可以从中获取数据(以NSData的形式)并将其加载到UIImage中并显示它.

我想将此数据保存到文件中.但是,我不知道数据的格式是什么(PNG,JPG,BMP)?我认为它是JPG(因为它是来自网络的图像)但是有一种程序化的方法可以找到它吗?我查看了StackOverflow和文档,但未能找到任何内容.

TIA.


编辑:我真的需要文件扩展名吗?我将它持久化到外部存储(Amazon S3),但考虑到它总是在iOS或浏览器的上下文中使用(两者在没有扩展的情况下解释数据似乎都很好)也许这不是问题.

iphone uiimage persist nsdata ios

65
推荐指数
6
解决办法
4万
查看次数

viewWillAppear,viewDidAppear没有被调用,没有被触发

(这既是问题又是答案,因为需要花费大量时间才能找到真正的答案.)

症状:viewWillAppear,viewDidAppear没有被称为在我的UIViewController.

原因:嵌入一个UINavigationControllerUITabBarController(我的情况)以UIViewController某种方式中断调用这些方法.

解决方案:在UIViewController包含上述UINavigationController/的手动调用它们UITabBarController.

例如(假设projectNavigationController是你的UINavigationController):

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [projectNavigationController viewWillAppear:animated];
}

-(void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated];
    [projectNavigationController viewWillDisappear:animated];
}

-(void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated];
    [projectNavigationController viewDidAppear:animated];
}

-(void)viewDidDisappear:(BOOL)animated { 
    [super viewDidDisappear:animated];
    [projectNavigationController viewDidDisappear:animated];
}

在我的情况下,我有一个内部UITabBarController,我相应地调用方法,所有都解决了.

(对解决方案的归因:http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/)

iphone objective-c uitabbarcontroller viewwillappear

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

Java中的最终静态变量是否安全?

我已经阅读了很多,但没有找到明确的答案.

我有一个看起来像这样的课程:

    public class Foo() {

        private static final HashMap<String, HashMap> sharedData;

        private final HashMap myRefOfInnerHashMap;

        static {
           // time-consuming initialization of sharedData
           final HashMap<String, String> innerMap = new HashMap<String, String>;
           innerMap.put...
           innerMap.put...
           ...a

           sharedData.put(someKey, java.util.Collections.unmodifiableMap(innerMap));
        }

        public Foo(String key) {
            this.myRefOfInnerHashMap = sharedData.get(key);
        }

        public void doSomethingUseful() {
            // iterate over copy
            for (Map.Entry<String, String> entry : this.myRefOfInnerHashMap.entrySet()) {
                ...
            }
        }
     }
Run Code Online (Sandbox Code Playgroud)

我想知道从Foo实例访问sharedData是否是线程安全的(如构造函数和doSomethingUseful()中所示).Foo的许多实例将在多线程环境中创建.

我的意图是sharedData在静态初始化程序中初始化,之后不再修改(只读).

我读过的是不可变对象本质上是线程安全的.但我只是在实例变量的上下文中看到了这一点.不可变的静态变量是否安全?

我找到的另一个构造是ConcurrentHashMap.我可以创建ConcurrentHashMap类型的sharedData但是它包含的HashMaps也必须是ConcurrentHashMap类型的?基本上..

private static final ConcurrentHashMap<String, HashMap> sharedData;
Run Code Online (Sandbox Code Playgroud)

要么

private static final ConcurrentHashMap<String, ConcurrentHashMap> …
Run Code Online (Sandbox Code Playgroud)

java static multithreading final hashmap

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

Eclipse中的Tomcat:无论如何它在运行期间运行但是超时

我正在使用Tomcat 7在Eclipse(Helios)中运行java Web应用程序.服务器成功启动(持续时间指示)但是Eclipse的进度条仍然在旋转,说Tomcat正在启动.最终达到超时并抛出错误.

我相信Tomcat很好,因为我已经使用了它使用的命令并在shell中手动运行它.Tomcat运行正常,我可以在预期的URL上点击Web应用程序.我也可以在它启动之后和超时发生之前点击它.

我重新安装了Eclipse,我用干净运行它,我删除/重新创建了服务器.没有任何效果.有人有任何线索吗?

java eclipse web-applications tomcat7

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

来自JSON的objective-c(iphone)中的对象映射

对于我的iPhone应用程序,我正在使用RESTful服务并获取JSON.我发现库将其反序列化为NSDictionary.但是,我想知道是否有任何库将JSON/NSDictionary/Property List反序列化为我的对象(我这一个任意一个).

java等价物将是对象关系映射器,尽管我正在寻找的对象映射类型相对简单(简单的数据类型,没有复杂的关系等).

我注意到Objective-C确实有内省,所以理论上似乎有可能,但我没有找到一个库来做它.

或者是否有一种简单的方法从NSDictionary/Property List对象加​​载一个对象,每次对象更改时都不需要修改?

例如:

{ "id" : "user1",
  "name" : "mister foobar"
  "age" : 20 }
Run Code Online (Sandbox Code Playgroud)

被加载到对象中

@interface User : NSObject {
 NSString *id;
 NSString *name;
 int *age;
}
Run Code Online (Sandbox Code Playgroud)

iphone rest orm json objective-c

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

嵌套算法的计算复杂性

给定一个数组a [1,2,3,4,5,6,7,8,9,10],假设我们有一个算法可以执行以下操作:

for i in 0..a.length
  for j in 0..a.length
    ...
Run Code Online (Sandbox Code Playgroud)

这将具有O(n ^ 2)的Big O运行时,因为对于每个元素,它将遍历整个数组.

但是如果内部循环仅从外部索引向前移动怎么办?

for i in 0..a.length
  for j in i..a.length
    ...
Run Code Online (Sandbox Code Playgroud)

也就是说,相比之下,第一个算法将在每次迭代(外部循环)中查看n个元素.第二个算法着眼于:

  • 第一次迭代时的n个元素
  • 第二次迭代中的n-1个元素
  • 第三次迭代中的n-2个元素
  • ...
  • 最后一次迭代的1个元素

在为这种算法计算Big O运行时时,它仍然是O(n ^ 2)吗?

algorithm math complexity-theory big-o

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