如果您对如何使用可伸缩和纯净模式制作相同的iOSSwiftApp,仅在代码和资产上有一些差异感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何使用可伸缩和纯净模式制作相同的iOSSwiftAp
如果您对如何使用可伸缩和纯净模式制作相同的iOS Swift App,仅在代码和资产上有一些差异感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解如何使用可伸缩和纯净模式制作相同的iOS Swift App,仅在代码和资产上有一些差异的各种细节,此外还有关于2016年全国大学生App大赛,Swift你的iOS!、ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift、ios – Swift:如何从不同的swift文件中调用函数、ios – 使用可选数组时,Swift flatMap会产生意外结果的实用技巧。
本文目录一览:- 如何使用可伸缩和纯净模式制作相同的iOS Swift App,仅在代码和资产上有一些差异
- 2016年全国大学生App大赛,Swift你的iOS!
- ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift
- ios – Swift:如何从不同的swift文件中调用函数
- ios – 使用可选数组时,Swift flatMap会产生意外结果
如何使用可伸缩和纯净模式制作相同的iOS Swift App,仅在代码和资产上有一些差异
我有这个需求。
我开发了一个应用,我想复制它。我可以复制并粘贴项目,但是如果执行10次,则可能会出现问题。问题是,如果我在第十次重复中发现了一个错误,则我必须复查所有其他项目,而我不想这样做。
有没有解决此问题的干净方法?
换句话说,我只有一个大代码。我必须部署的应用程序之间的差异是:
- 启动器图标
- HTTP请求的域
- 包裹名字
- 开机画面
- 应用名称
- 应用内的一些整数
- 一些资产
在Android中,我特别使用gradle来实现。如何使用Swift做同样的事情?
答案1
小编典典创建具有多个目标的单个项目。每个目标都有一个不同的info.plist以及您需要进行的其他任何更改,但共享源。
2016年全国大学生App大赛,Swift你的iOS!
总结
以上是小编为你收集整理的2016年全国大学生App大赛,Swift你的iOS!全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift
// earlier,in Obj C... typedef struct _Room { uint8_t *map; int width; int height; } Room;
如果你很好奇,房间就是刺激roguelike游戏的一部分.我正在尝试在Swift中重写几个部分.这是看起来破碎的代码,以及我希望我做的评论:
let ptr = UnsafePointer<UInt8>(room.map) // grab a pointer to the map out of the room struct let offset = (Int(room.width) * Int(point.y)) + Int(point.x) // calculate an int offset to the location I am interested in examining let locationPointer = ptr + offset // pointer advances to point to the offset I want var pointValue = ptr.memory // What I used to get with *ptr
这里出了点问题,因为简单的测试显示pointValue的值不是我所知道的我在地图上看到的,已经将一个非常简单的位置(1,1)设置为已知值.很明显,Swift不应该做这种事情,但它是一个转换,目的是学习Swift的方式,当我非常清楚语法时.
我希望错误在swift代码中 – 因为这一切都在目标C版本中工作.哪里出错?
解决方法
var pointValue = locationPointer.memory
或者你可以改变指向var的指针并推进它:
var ptr = UnsafePointer<UInt8>(room.map) // grab a pointer to the map out of the room struct let offset = (Int(room.width) * Int(point.y)) + Int(point.x) // calculate an int offset to the location I am interested in examining ptr = ptr + offset // pointer advances to point to the offset I want var pointValue = ptr.memory // What I used to get with *ptr
ios – Swift:如何从不同的swift文件中调用函数
我基本上想知道文件A中的一些数据在文件B中使用.
我的文件都是UIViewControllers,我创建了一个没有参数的函数,它返回UIViewController_A中的字符串.当我尝试在UIViewController_B中调用所述函数时,intellisense为我填写,但是我必须有一个自动填充为UIViewController_A的参数.
在代码中,LoginScreen.swift == ViewController_A和ViewResidentsTask == ViewController_B.
我的函数名为checkPrivs,存在于LoginScreen.swift中,如下所示:
func checkPrivs()-> String{ return userPrivType }
这就是我认为它应该被称为:
var userType = LoginScreen.checkPrivs()
当我尝试调用它时,这就是intellisense所做的事情:
var userType = LoginScreen.checkPrivs(LoginScreen)
这引发了一个错误,说“预期”,“分隔符”
不确定我应该用什么替换LoginScreen但我尝试过的所有内容(空,字符串,当前文件名)都会引发错误.
我是Xcode的新手,从c#背景来看,任何帮助都会非常感激.
答案:事实证明我在UIViewController类中声明了’loginScreen’,而我应该在类之外声明它.
解决方法
let login = LoginScreen() var userType = login.checkPrivs()
ios – 使用可选数组时,Swift flatMap会产生意外结果
我们想要在我们的社会中整合汽车名称列表.
struct Person { let name: String let address: String let age: Int let income: Double let cars: [String]? } let personsArray = [Person(name:"Santosh",address: "Pune,India",age:34,income: 100000.0,cars:["i20","Swift VXI"]),Person(name: "John",address:"New York,US",age: 23,income: 150000.0,cars:["Crita",Person(name:"Amit",address:"Nagpure,age:17,income: 200000.0,cars:nil)] let flatmapArray = personsArray.flatMap({$0.cars}) print(flatmapArray)
// Expected Result: [“i20”,“Swift VXI”,“Crita”,“Swift VXI”]
// Result: [[“i20”,“Swift VXI”],[“Crita”,“Swift VXI”]]
为什么它不给我一个字符串数组作为结果?
我在上面的代码中做了几处更改,如下面的代码,
我们尝试将空数组传递给第3个Person对象,而不是“nil”.
Person(name:"Amit",cars:Array())
结果是:
[[“i20”,[]]
仍然不是预期的结果.
如果我从汽车数组中删除可选,如,
let cars: [String] Person(name:"Amit",cars:Array())
然后它按预期工作.
结果:
[“i20”,“Swift VXI”]
如果成员类型为Collection是可选的,我不确定为什么它不给出上述结果?
解决方法
let foo: Int? = 5 foo.map { $0 * $0 } // Int? = 25; "collection of one element" let bar: Int? = nil bar.map { $0 * $0 } // Int? = nil; "collection of zero elements"
为了用更熟悉的术语来说明你目前的情况,你正在寻找相当于这个:
class Person { let cars: [[String]] }
如果你有一个var人员:[Person]并且调用了person.flatMap {$0.cars},那么这个操作的结果类型无疑会是[[String]]:你从三层集合开始,最后得到两个.
这也是[String]实际发生的事情吗?而不是[[String]].
在您描述的情况下,我建议删除可选和使用空数组.在你的情况下,我不确定nil数组和空数组之间的区别是真正必要的:我的解释是nil数组意味着该人无法拥有汽车,而空数组意味着该人是能够拥有一辆车,但却没有.
如果你不能删除可选项,那么你需要调用flatMap两次以展平两层而不是只有一层:
persons.flatMap { $0.cars }.flatMap { $0 }
关于如何使用可伸缩和纯净模式制作相同的iOS Swift App,仅在代码和资产上有一些差异的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于2016年全国大学生App大赛,Swift你的iOS!、ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift、ios – Swift:如何从不同的swift文件中调用函数、ios – 使用可选数组时,Swift flatMap会产生意外结果的相关信息,请在本站寻找。
本文标签: