我正在创建一个iPhone应用程序,它使用UIImagePickerController让用户从照片库中选择一个图像.
选择器允许我成功地从照片库中获取图像:
但是如果我测试这个应用程序,那么选择器无法获得图像:
在这两个测试环境中,图像选择器成功出现.当我点击我需要的图像时,它不会通过方法" - (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info " 从" [info objectForKey:UIImagePickerControllerOriginalImage] " 给我任何东西.
"info"字典就像这样:
{
UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=7632C58F-AF74-4EEB-AF17-891E35949CBA&ext=PNG";
}
Run Code Online (Sandbox Code Playgroud)
在以前的5个测试环境中,"info"就像这样:
{
UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerOriginalImage = "<UIImage: 0x6bb7810>";
UIImagePickerControllerReferenceURL = "assets-library://asset/asset.PNG?id=7632C58F-AF74-4EEB-AF17-891E35949CBA&ext=PNG";
}
Run Code Online (Sandbox Code Playgroud)
您可以看到缺少UIImagePickerControllerOriginalImage.我不确定这只是我吗?
注意:我在iOS 5 SDK中使用Xcode 4.3.2
注2:我没有使用AssetsLibrary框架来获取图像.
注释3(2012年8月2日添加):我已经安装了Mountain Lion升级到Xcode 4.4.同样的问题仍然存在.但是现在如果我在iPad模拟器v5.0中运行它会出现一条新的错误消息(如果我在iPad模拟器v5.1上运行它,则不会显示错误消息).错误消息显示:找不到命名服务'com.apple.PersistentURLTranslator.Gatekeeper'.assetsd已关闭或配置错误.事情不会像你期望的那样发挥作用.
注释4(2012年11月25日添加):使用Xcode 4.5.2,iPad模拟器5.0,5.1和6.0中仍存在此问题
注释5(2012年3月6日添加):使用Xcode 4.6,这个问题仍然存在于iPad模拟器的所有版本中.
当我使用Xcode 3.2并添加现有框架时,代码检测会在我键入时检测框架名称#import <.
比如说我添加了框架"MediaPlayer".然后我键入#import <Me,代码意义建议我#import <MediaPlayer/MediaPlayer.h>
现在我正在使用Xcode 4.2.1,我注意到这种代码感觉对某些frmeworks来说效果不太好.(例如,可以成功建议"CoreAudio",但"MediaPlayer"和"CoreMotion"不能).
Xcode有什么问题,或者我错过了一些设置,所以代码意义上没有检测到这些框架?
2012年2月27日编辑:在Xcode 4.3中证实了这一点
编辑于2012年3月7日:我认为它已在Xcode 4.3中修复.但奇怪的是,它有时会起作用,有时却不起作用.
编辑于3/AUG/2012:这已在Xcode 4.4中得到证实
Mac Mission Control(4个手指向下滑动)是一个方便的功能,它允许我们导航一个应用程序的不同窗口.
大多数应用程序会在每个窗口缩略图下方显示窗口标题,因此很容易找到您想要带到前面的窗口.
但是,如果我在Xcode 4.2.1中打开一些项目并进行4指滑动,我在窗口缩略图下面看不到任何"标题"或"项目名称".这很烦人,因为有时窗口预览缩略图并不总是足以识别内部的内容.
是否有任何需要更改才能显示的设置?或者它还不可能?
2012年1月28日编辑:我收到Apple Bug Report的回复:
18-Jan-2012 08:07 AM Apple Developer Bug报告团队:此错误已作为Duplicate关闭.我们知道此问题,并在Bug ID 10044627下进行跟踪
2012年2月27日编辑: 在Xcode 4.3中证实了这一点
我想在我的iOS 4.3应用程序中使用ECSlidingViewController.我想知道如何在没有故事板的情况下应用这个库?
PLZ,怎么样?这是我的代码,但iOS模拟器的屏幕只有白色.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
//self.window.backgroundColor = [UIColor whiteColor];
FrontViewController *frontViewController = [[FrontViewController alloc] initWithNibName:@"FrontViewController" bundle:nil];
RearViewController *rearViewController = [[RearViewController alloc] initWithNibName:@"RearViewController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:frontViewController];
// create a DDMenuController setting the content as the root
//DDMenuController *menuController = [[DDMenuController alloc] initWithRootViewController:navigationController];
//menuController.leftViewController = rearViewController;
//RevealController *menuController = [[RevealController alloc] initWithFrontViewController:navigationController rearViewController:rearViewController];
ECSlidingViewController *slidingViewController = (ECSlidingViewController *)self.window.rootViewController;
slidingViewController.topViewController …Run Code Online (Sandbox Code Playgroud) 通过阅读这篇文章,看起来在声明全局变量时应该考虑某些规则.
所以我尝试在.m文件中声明全局变量.但是,代码感觉似乎不高兴为我这样做.例如,假设我在.m文件中已有2行:
@implementation ViewController
@synthesize abc,xyz;
现在我要添加"BOOL isChecked;".
如果我在下面输入"@synthesize"(或者只是在@implementation和@synthesize之间),代码意义实际上建议我在输入"BOOL"时输入"bool"(小写).如果我在"@implementation"上面键入"BOOL",它会成功建议"BOOL".
当然,全局变量是这个类的一部分,这意味着它应该在实现中.我不确定为什么不喜欢让我们这样做.
这让我觉得Objective-C不喜欢我们在@synthesize下面声明全局变量.但我的问题是为什么?我觉得可能有一个原因或苹果公司在这里犯了一个错误.