我有一个奇怪的问题.
我正在尝试在IB中设置用户定义的运行时属性.如下所示,我在viewController中设置了NSString statID属性,并希望在IB中为其提供测试值00000
当我编译时,我在构建时遇到此错误:"在10.6之前的Mac OS X版本上用户定义的运行时属性"
我知道我可以在iOS中从这里找到的iOS文档设置用户定义的属性到下面的部分:"为自定义对象配置运行时属性"
知道为什么它会给我错误吗?
嗨,大家好.
第1部分.在Identity选项卡下的IB中,您可以找到名为"Object ID"的属性.我找不到从代码中获取此ID的方法.哦,我知道标签属性,但它不是我需要的.
第2部分.我基本上想获得一个触摸了它的UIComponent的唯一对象ID.我已经有了UITouch对象.
谢谢.
我要么是大脑受损了,要么是我缺少一些NSNotificationCenter
问题是,如果我创建一个观察者,并在下一行将尝试删除它,如下所示:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(removeAllVisibleMapViews) name:@"ClearVisibleMaps" object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self forKeyPath:@"ClearVisibleMaps"];
Run Code Online (Sandbox Code Playgroud)
我明白了
*** Terminating app due to uncaught exception 'NSRangeException', reason: 'Cannot remove an observer <MyApp 0x592db70> for the key path "ClearVisibleMaps" from <NSNotificationCenter 0x4e0fbb0> because it is not registered as an observer.'
Run Code Online (Sandbox Code Playgroud)
我添加和删除观察者一行一行只是为了说明一点.在我的代码中,我将在dealloc中使用remove.
所以任何想法为什么它告诉我,我没有首先添加和观察者?
我正在转换我的应用程序在64位系统上工作,我一直试图正确使用内置CC_SHA1
方法.
我收到警告:
隐式转换失去整数精度:"NSUInteger"(又名"无符号长")为"CC_LONG"(又名"无符号整型")
当试图传递:data.length
在CC_SHA1
方法中.
data.length
是 NSUInteger
CC_SHA1
方法定义是:
extern unsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md)
Run Code Online (Sandbox Code Playgroud)
哪里CC_LONG
是32位unsigned integer
.
如何更改才能使用 CC_LONG64
?
typedef uint64_t CC_LONG64;
Run Code Online (Sandbox Code Playgroud)
这是我得到上述警告的转换方法:
+(NSString*)sha1:(NSString*)input
{
const char *cstr = [input cStringUsingEncoding:NSUTF8StringEncoding];
NSData *data = [NSData dataWithBytes:cstr length:input.length];
uint8_t digest[CC_SHA1_DIGEST_LENGTH];
CC_SHA1(data.bytes, data.length, digest);
NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2];
for(NSInteger i = 0; i < CC_SHA1_DIGEST_LENGTH; i++)
[output appendFormat:@"%02x", digest[i]];
return output;
}
Run Code Online (Sandbox Code Playgroud) 我想创建一个CGImageRef并为它绘制点.
用于创建空CGImageRef并能够绘制到其上的上下文.CGContextRef还是CGBitmapContextRef?
如果你可以提供代码来创建一个空的CGImageRef图像并绘制它,我将不胜感激.
我正在尝试将我的一个iOS应用程序移植到Mac OS X,我很难找到UIDevice
OS X的类似对象.我有兴趣获取设备的名称,例如"MacBookAir".
编辑/答案
正如Josh Caswell指出的那样,你可以使用SCDynamicStoreCopyComputerName
密钥.
这是代码:
+ (NSString *)computerName {
return [(id)SCDynamicStoreCopyComputerName(NULL, NULL) autorelease];
}
Run Code Online (Sandbox Code Playgroud) 我在NSMutableArray中存储CGGradientRef的任务有问题.我需要包装它以将其存储在数组中以及将其解包的内容.
谢谢.
我试图简单地使用GCDAsyncSocket发送和接收消息,但无法使其工作.
我正在成功建立连接并写入消息,但是当涉及到阅读时,我的委托从未被调用过.
我正在使用ios5和这个设置:
客户:
-(void) connectToHost:(HostAddress*)host{
NSLog(@"Trying to connect to host %@", host.hostname);
if (asyncSocket == nil)
{
asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
NSError *err = nil;
if ([asyncSocket connectToHost:host.hostname onPort:host.port error:&err])
{
NSLog(@"Connected to %@", host.hostname);
NSString *welcomMessage = @"Hello from the client\r\n";
[asyncSocket writeData:[welcomMessage dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:1];
[asyncSocket readDataWithTimeout:-1 tag:0];
}else
NSLog(@"%@", err);
}
}
Run Code Online (Sandbox Code Playgroud)
不调用Delegate didReadData方法
-(void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag{
NSLog(@"MESSAGE: %@", [NSString stringWithUTF8String:[data bytes]]);
}
Run Code Online (Sandbox Code Playgroud)
服务器
-(void)viewDidLoad{
asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
connectedSockets …
Run Code Online (Sandbox Code Playgroud) 我正在使用https://github.com/ReactiveCocoa/ReactiveCocoa实现我的第一个代码.
用于登录用户.该行[subscriber sendNext:user];
被调用两次,但我希望只有一行.并且根本没有调用地图(因此永远不会调用自动登录)
这是我的实施:
-(RACSignal *) login:(NSString *)email pwd:(NSString *)pwd
{
DDLogInfo(@"Login user %@", email);
RACSignal *login = [RACSignal createSignal:^ RACDisposable *(id<RACSubscriber> subscriber)
{
[PFUser logInWithUsernameInBackground:email password:pwd block:^(PFUser *user, NSError *error) {
if (error) {
[subscriber sendError:error];
} else {
[subscriber sendNext:user];
[subscriber sendCompleted];
}
}];
return nil;
}];
[login map:^(PFUser *user) {
return [self autoLogin:user];
}];
return login;
}
Run Code Online (Sandbox Code Playgroud)
这样称呼:
NSString *email = data[@"email"];
NSString *pwd = data[@"pwd"];
[SVProgressHUD showWithMaskType:SVProgressHUDMaskTypeBlack];
RACSignal *login = [[SyncEngine server] …
Run Code Online (Sandbox Code Playgroud) 我打电话SKPaymentQueue.default().restoreCompletedTransactions()
,在 iOS 询问我的密码并选择“取消”后,应用程序将在没有日志的情况下崩溃。
有时,应用内购买会在没有更多信息或错误的情况下崩溃。我用IAPHelper
. 有时当我调用SKPaymentQueue.default().add(payment)
.
操作系统:iOS 10
Xcode 8.0
语言:Swift 3