是否仍然可以在 iOS 和 tvOS 之间共享 UserDefaults?
在我的 Xcode 项目中,我用于UserDefaults在 iOS 目标和 tvOS 目标之间共享数据。UserDefaults当我尝试从我的 tvOS 应用程序取回数据时,我总是收到来自我的 nil 值。
这些是我共享数据所采取的步骤:
1:为两个目标添加应用程序组。两个目标使用相同的应用程序组 ID: group.nl.mycompany.myappname。
我使用 .nl 域,但这应该没问题,因为这也适用于我的其他项目。
2:确认两个目标具有相同的部署目标。我尝试使用 10.0 和 11.0。
3:验证 myproject.entitlements 是否一切正常。
4:验证在 developer.apple.com 上为我的包标识符启用了应用程序组。
5:两个目标具有相同的包 ID。我还尝试使用 2 个不同的包标识符。
6:我UserDefaults从我的 iOS 应用程序写入的方式:
guard let defaults = UserDefaults(suiteName: "group.nl.mycompany.myappname") else { return }
defaults.set("Apple", forKey: "username")
defaults.synchronize()
Run Code Online (Sandbox Code Playgroud)
我通过获取如下值来确认这在我的 iOS 应用程序中有效:
guard let defaults = UserDefaults(suiteName: "group.nl.mycompany.myappname") else { return nil }
defaults.synchronize()
let name …Run Code Online (Sandbox Code Playgroud) 我正在尝试将 JSON 文档中的日期格式化为“mm-dd-yyyy”格式。我有以下数据:
{"data":[{
"id": 123,
"url": "https://www.google.com",
"title": "The Google link",
"created_at": "2017-08-29T04:00:00.000Z",//date to format
"sent": true,
"alternative": "https://google.com",
"things": [],
"description": [
"search",
"lookup"
],
"company": "Alphabet"
}]}
Run Code Online (Sandbox Code Playgroud)
这是我的结构:
struct Sitedata: Decodable{
let data: [site]
}
struct site: Decodable {
let id: Int
let url: String
let title: String
let created_at: String
let sent: Bool
let alternative: String
let things: [String]
let description: [String]
let company: String
}
let sites = try JSONDecoder().decode(Sitedata.self, from: data)
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但它产生了nil: …
我有1000个元素的数组,这些元素在0到1之间波动。
我想扫描该数组,并将低于某个阈值的所有值归零0.3。
我知道我可以做类似的事情
let filteredArrayOnDict = myArray.filter { $0 > 0.3}
Run Code Online (Sandbox Code Playgroud)
我将获得一个包含以上元素的新数组0.3。但这不是我想要的。我想将元素低于0.3归零,并使结果数组具有相同数量的元素。
我可以像这样遍历数组
var newArray : [Double] = []
for item in myArray {
if item > 0.3 {
newArray.append(item)
} else {
newArray.append(0)
}
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有一些更神奇的方法使用这些神奇的命令,例如滤镜,地图,平面地图等。
我刚刚将Objective-C库转换为C库,希望能够跨平台.但是,在我发送这个东西进行处理之前,一切似乎都没问题.
这是我得到一个错误的点.
回顾一些修改,我在调试器中发现了一些东西.
就像malloc'd字符串之后那样:
char *theString = malloc(SOME_SIZE * sizeof(char));
Run Code Online (Sandbox Code Playgroud)
我会看到theString是\ x03而*theString是"3'\ 003'".
我首先假设这只是奇怪的记忆,因为我没有一个strcat或任何东西,但奇怪的起始字符继续,并在我执行类似malloc的每个其他点重复.
在正常处理方面,这很好.不幸的是,我不明白它是什么,否则,我只是做一些像切断第一个角色或其他东西一样的东西.
如果我想安全地将它转换为NSString,有人可以向我解释这是什么以及我如何处理它?
Objective-C中最简单的代码会导致奇怪的行为:
#import Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSObject *obj = [[NSObject alloc] init];
NSLog(@"retain count %d",[obj retainCount]);//print 1
[obj release];//obj deallocated
NSLog(@"retain count %d",[obj retainCount]); //still printing 1 in Snow Leopard! Why??
[pool drain];
return 0;
}
Run Code Online (Sandbox Code Playgroud)
第二个NSLog()应该打印"message retainCount send to freed object = 0x103eb0".如果你使用Leopard一切正常,但在Snow Leopard中,第二个NSLog仍然可以打印1.
这是雪豹版Xcode中的一个错误吗?
evalObjective-C中是否存在类似Javascript,Ruby,PHP或Python的方法?
我使用PhoneGap,我想创建一个特定于我的每个项目的窗口,我不能使用HTML文件.所以我想从JavaScript调用一个方法,其中一个参数是Objective-C代码,需要解释.
我正在尝试int根据运行时获得的大小创建并归零一个s 数组:
size = [gamePiece.availableMoves.moves count]; //debugger shows size = 1;
int array[size]; //debugger shows this as int[0] !
memset(array, 0, size);
indexes = array;
Run Code Online (Sandbox Code Playgroud)
size并且indexes都是这个类的ivars:
int size;
int* indexes;
Run Code Online (Sandbox Code Playgroud)
不过,我最终得到了一个0长度的数组.如何用指示的尺寸创建它[gamePiece.availableMoves.moves count]?
我正在使用UIView我的应用程序中的子类.当用户触摸视图时,我需要获得该点的坐标; 为此我正在使用:
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
currentPoint=[[touches anyObject]locationInView:self];
}
Run Code Online (Sandbox Code Playgroud)
它有一些延迟.任何人都可以给我解决方案立即获得积分吗?谢谢你们.
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code.
self.frame=frame;
rect=[[NSMutableArray alloc] initWithCapacity:1];
currentPointsList=[[NSMutableArray alloc]initWithCapacity:1];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
firstTouchedPoint = [touch locationInView:self];
NSLog(@"the firstTouched point is %");
for (int i=0; i<[rect count]; i++) {
if(CGRectContainsPoint([[rect objectAtIndex:i]CGRectValue], firstTouchedPoint)){
CGRect firstLineRect = CGRectMake(firstTouchedPoint.x,
[[rect objectAtIndex:i]CGRectValue].origin.y,
[[rect objectAtIndex:i]CGRectValue].size.width-firstTouchedPoint.x+[[rect objectAtIndex:i]CGRectValue].origin.x,
[[rect objectAtIndex:i]CGRectValue].size.height);
UIImageView *firstLine=[[UIImageView alloc]initWithFrame:firstLineRect];
firstLine.backgroundColor=[[UIColor blueColor]colorWithAlphaComponent:0.3f];
[self …Run Code Online (Sandbox Code Playgroud) 我在Objective-C中进行计算.我有一个价值4.0468564224e-33.我不知道那个e常数的价值是多少.请帮帮我:我该如何计算这个常数值?如何在Objective-C中声明和计算常量值?
我正在尝试将一个自定义单元格加载到一个UITableView并且它不断抛出错误
UITableView dataSource必须从tableView:cellForRowAtIndexPath返回一个单元格:
我不知道为什么.我已将我的表视图单元格链接到我的代码中的UITableViewCell定义,但它一直给我这个错误.这是我的代码; 任何帮助将不胜感激.
#import "RegisterDeviceViewController.h"
@implementation RegisterDeviceViewController
@synthesize checkString;
@synthesize cellRegistration;
// The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
/*
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization.
}
return self;
}
*/
//Change UITableView Style to Grouped
- (id)initWithStyle:(UITableViewStyle)style {
// Override initWithStyle: if you create the controller programmatically and want to …Run Code Online (Sandbox Code Playgroud) objective-c ×6
ios ×3
swift ×3
c ×2
cocoa-touch ×2
arrays ×1
cocoa ×1
cordova ×1
custom-cell ×1
datasource ×1
date-parsing ×1
decodable ×1
eval ×1
foundation ×1
json ×1
malloc ×1
math ×1
pointers ×1
tvos ×1
uitableview ×1
uitouch ×1
uiview ×1