只是想确保我做对了:
__unsafe_unretain我不拥有的物品吗?__unsafe_unretained我需要assign在@property?这是否意味着不保留对象,只是引用我指定的对象?我试图隐藏我在我的一个应用程序中使用的2个秘密.
据我所知,钥匙串是一个好地方,但我不能在提交应用程序之前添加它们.
我想到了这个场景 -
这样安全还是黑客可以看到这种情况并获得这些密钥?
*第三次编辑**很抱歉没有从头开始解释这个场景 - 该应用程序有许多级别,每个级别包含文件(音频,视频,图像).用户可以购买一个级别(IAP),购买完成后我需要将文件下载到他的设备.
对于iOS6,文件与Apple新的"托管内容"功能一起存储.对于iOS5,文件存储在amazon S3中.
所以在这个过程中我有2个键:1.IAP键,用于验证Apple IAP的购买.2. S3键,用于从iOS5用户获取S3的文件:
NSString *secretAccessKey = @"xxxxxxxxx";
NSString *accessKey = @"xxxxxxxxx";
Run Code Online (Sandbox Code Playgroud)
我是否需要保护这些密钥?我担心人们无需购买级别就可以从S3获取文件.或者黑客将能够构建一个黑客版本,其中包含预先下载的所有级别.
这是我的.pch文件 -
//
// Prefix header for all source files of the 'English Club' target in the 'English Club' project
//
#import <Availability.h>
#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "Helper.h"
#import "Animations.h"
#import "Constants.h"
#import "SoundPlayer.h"
#import "UAirship.h"
#import "UAStoreFront.h"
#import "UIIMagesNames.h"
#import "UIView+Sizes.h"
#import "HelpButton.h"
#import "SoundPlayer.h"
#import <RestKit/RestKit.h>
#import "UIHelpSoundFiles.h"
#endif
Run Code Online (Sandbox Code Playgroud)
仍然很常见,Xcode会给我错误,他找不到那些类.(例如帮助者).问题是该项目将被编译并且工作正常,但是我有数百个错误,这些错误会扰乱我寻找真实的错误.
知道为什么吗?
我正在使用此代码重新加载tableView部分 -
self.tableView.beginUpdates()
self.tableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: UITableViewRowAnimation.None)
self.tableView.endUpdates()
Run Code Online (Sandbox Code Playgroud)
行替换仍然是动画的,表视图滚动到顶部.
如何确保不会将动画应用于重新加载部分+阻止表格视图滚动.
当我尝试在Tower中设置我的用户名时,我收到此警告:
警告:user.name有多个值
我已经检查了一个终端窗口,发现我有三个用户名:
macmini:HiBye shannoga$ git config --get-all user.name
Shani
shani
shani
Run Code Online (Sandbox Code Playgroud)
如何删除两个用户名?
我是iPhone 4S上的runung Instruments.我在这个方法中使用AVAudioPlayer:
-(void)playSound{
NSURL *url = [self.word soundURL];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
if (!error) {
[audioPlayer prepareToPlay];
[audioPlayer play];
}else{
NSLog(@"Problem With audioPlayer on general card. error : %@ | url %@",[error description],[url absoluteString]);
}
Run Code Online (Sandbox Code Playgroud)
我在播放声音文件时遇到泄漏:
泄漏的物体:
1.
对象:NSURL
负责任的图书馆:基金会
负责框架:基金会 - [NSURL(NSURL)allocWithZone:]
2.
对象:_NSCFString
负责任的图书馆:基金会
负责框架:基础 - [NSURL(NSURL)initFileURLWithPath:]
仪器没有直接指向我的代码,因此我发现很难找到泄漏原因.
我的问题
什么可能导致泄漏? 或者当我对代码不负责时,如何定位泄漏?
编辑
这是仪器周期视图中的模式:
谢谢Shani
我有一个抛出错误的函数,在这个函数中我有一个inside a闭包,我需要从它的完成处理程序抛出错误.那可能吗 ?
到目前为止,这是我的代码.
enum CalendarEventError: ErrorType {
case UnAuthorized
case AccessDenied
case Failed
}
func insertEventToDefaultCalendar(event :EKEvent) throws {
let eventStore = EKEventStore()
switch EKEventStore.authorizationStatusForEntityType(.Event) {
case .Authorized:
do {
try insertEvent(eventStore, event: event)
} catch {
throw CalendarEventError.Failed
}
case .Denied:
throw CalendarEventError.AccessDenied
case .NotDetermined:
eventStore.requestAccessToEntityType(EKEntityType.Event, completion: { (granted, error) -> Void in
if granted {
//insertEvent(eventStore)
} else {
//throw CalendarEventError.AccessDenied
}
})
default:
}
}
Run Code Online (Sandbox Code Playgroud) 我在iPad应用程序中使用splitView.详细视图中有2个子视图,它根据etail视图边界绘制自己.问题是,即使ipad处于横向模式,它们总是在(1024,768)中绘制自己.
顺便说一句 - 如果我然后以纵向模式呼叫,然后旋转ipad,他们会缩放到(706,768).
我已经检查了详细视图框架和它创建的边界(在视图中执行加载方法),在这两种情况下我都得到了这个:
NSLog(@"screen frame = %@",NSStringFromCGRect(self.view.frame));
NSLog(@"screen bounds = %@",NSStringFromCGRect(self.view.bounds));
Run Code Online (Sandbox Code Playgroud)
在调试窗口中,我得到:
2011-03-03 10:58:19.376 English Club[63347:207] screen frame = {{0, 0}, {768, 1024}}
2011-03-03 10:58:19.382 English Club[63347:207] screen bounds = {{0, 0}, {768, 1024}}
Run Code Online (Sandbox Code Playgroud)
我无法找出问题所在.谁能帮我?
谢谢你的帮助.
我有一个UIPageViewController,我只是无法弄清楚如何知道用户转向页面的方向,以便我可以适当地设置页数.
谢谢Shani
我的应用程序崩溃严重 -
CALayer position contains NaN: [377.833 nan]
Run Code Online (Sandbox Code Playgroud)
使用以下堆栈 -
Fatal Exception: CALayerInvalidGeometry
0 CoreFoundation 0x18283afe0 __exceptionPreprocess
1 libobjc.A.dylib 0x18129c538 objc_exception_throw
2 CoreFoundation 0x18283af28 -[NSException initWithCoder:]
3 QuartzCore 0x185b50acc CA::Layer::set_position(CA::Vec2<double> const&, bool)
4 QuartzCore 0x185b50c48 -[CALayer setPosition:]
5 QuartzCore 0x185b51198 -[CALayer setFrame:]
6 UIKit 0x1889657a8 -[UIView(Geometry) setFrame:]
7 UIKit 0x188979364 -[UIImageView _setViewGeometry:forMetric:]
8 UIKit 0x1889c6c38 -[UIScrollView _adjustScrollerIndicators:alwaysShowingThem:]
9 UIKit 0x188abfb34 -[UIScrollView(UIScrollViewInternal) _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:]
10 WebKit 0x18c14af3c -[WKWebView _keyboardChangedWithInfo:adjustScrollView:]
11 CoreFoundation 0x1827d55f4 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
12 CoreFoundation 0x1827d4d08 _CFXRegistrationPost
13 CoreFoundation 0x1827d4a84 ___CFXNotificationPost_block_invoke
14 …Run Code Online (Sandbox Code Playgroud) ios ×8
objective-c ×2
api-key ×1
cocoa-touch ×1
crash ×1
git ×1
git-config ×1
header-files ×1
instruments ×1
ios10.3 ×1
ipad ×1
macos ×1
memory-leaks ×1
nsurl ×1
secret-key ×1
security ×1
swift ×1
swift2 ×1
throws ×1
uitableview ×1
uiview ×1
wkwebview ×1
xcode4 ×1