我创建了一个具有特定功能和特定图形外观的应用程序.
例如,自定义tableview单元格从Xib文件加载并具有UIImageView作为背景图像,从资源组加载粉红色图像("customcell.png").
现在,我已经复制了原始Target以创建应用程序的蓝色版本.此外,新Target正在使用自己的Info.plist文件及其自己的包标识符.
我希望Xib文件中的UIImageView使用相同的文件名("customcell.png"),但如果构建了蓝色Target,则需要使用蓝色版本的customcell.png.
我知道你不能在项目中拥有同名文件,即使你把它放在一个组(黄色文件夹)中,因为那只是一个逻辑文件夹.
所以我创建了2个蓝色文件夹(称为"蓝色"和"粉红色"),每个文件夹都与正确的目标相关联.我在"blue"文件夹中添加了蓝色版"customcell.png",在"pink"文件夹中添加了粉红色版"customcell.png".
我从项目中删除了原始的"customcell.png",只留下了新文件夹中的2个副本.
在Interface Builder中,UIImageView变为空白(因为我删除了原始图像文件),所以我从下拉列表中再次选择了"customcell.png".它只显示该名称的1个文件(不是2个),而它是蓝色的(不知道为什么).
但是,当我构建到任何目标时,我得到一个空的UIImageView和一个警告:
无法加载标识符为"com.myapp.blueversion"的包中nib引用的"customcell.png"图像
(或粉红色)
所以,基本上我的问题是, 我如何使用具有相同名称的不同图像,与不同的目标相关联,但是有1个Xib文件可以适当地加载它们?
非常感谢你!
我似乎遇到了Feed对话框的问题,我以前没有这个问题.我怀疑这是因为iOS 5,但我不确定.
如果用户需要身份验证,他将被重定向到Facebook应用程序,然后返回到我的应用程序.
然后,用户单击"共享"按钮,将显示 "提要"对话框.但突然,它消失了.
如果用户再次单击"共享",则提要对话框正常工作.这是第一次从认证返回应用程序后...
与"共享"按钮关联的代码就是这样:
if ([facebook isSessionValid]) {
[facebook dialog:@"feed" andParams:params andDelegate:self];
}
Run Code Online (Sandbox Code Playgroud)
该PARAMS变量总是被设置为正确的值,而不是零.如果会话无效,则将用户发送到身份验证方法.
我还尝试在FBDialog.m中注释掉一个IF语句,我已经在某处读过,但它没有成功.
有人经历过同样的问题吗?
谢谢!
编辑: 我很确定这是因为iOS 5现在,因为我已经在运行iOS 4.3的iPad 2上构建了项目,并且它从第一次开始工作正常.
编辑2: 它突然正常工作.......我没有改变任何东西O_O
我正在尝试从我的应用程序中静音设备的铃声,但出于某种原因,使用 AVSystemController 就像这个答案(如何禁用 iOS 系统声音)不会让我让设备一直静音..它会将其降低到音量为 1 bar,但并非完全静音。
我知道这是可以做到的,可能使用像 AVSystemController 这样的私有 API,而且我知道如果用户期望应用程序提供这种功能,Apple 仍然会批准该应用程序(因为我在 App Store 中已经找到了 2 个应用程序以编程方式使设备静音,无需越狱或类似操作)。
这些应用程序实际上做得更好 - 它们实际上切换了实际的静音,而不仅仅是将音量降低到零。
有谁知道这是怎么做的?
任何帮助将不胜感激!谢谢!
我在应用内购买时遇到了一个奇怪的问题......
在我请求产品信息后,有时会因某种原因自动调用paymentQueue:updatedTransactions.
在我的商店的viewDidLoad方法中,我初始化并启动请求:
- (void)viewDidLoad
{
[super viewDidLoad];
productsArray = [[NSArray alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
NSSet *productIdentifiers = [NSSet setWithObjects:PRODUCT_ID, nil];
productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
productsRequest.delegate = self;
[productsRequest start];
}
Run Code Online (Sandbox Code Playgroud)
然后我收到回复:
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
productsArray = [[NSArray alloc] initWithArray:response.products];
NSLog(@"Products Count: %d",[productsArray count]);
NSLog(@"Invalid Products Count: %d",[response.invalidProductIdentifiers count]);
if ([productsArray count] > 0)
{
NSLog(@"Product title: %@" ,[productsArray objectAtIndex:0]);
[self hideLoadingView];
} else {
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"No products found"
message:@"There might …Run Code Online (Sandbox Code Playgroud)