Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在UIActivityViewController中使用名称共享数据_Ios_Swift_Uiactivityviewcontroller - Fatal编程技术网

Ios 在UIActivityViewController中使用名称共享数据

Ios 在UIActivityViewController中使用名称共享数据,ios,swift,uiactivityviewcontroller,Ios,Swift,Uiactivityviewcontroller,我在我的应用程序中添加了共享功能,以共享名称、价格、数量和描述等数据。我就是这样做到的 let prodObj = newProdDetails[indexPath.row] let name = prodObj.name let price = prodObj.mrp let qty = prodObj.quantity let description = prodObj.descriptions let activityViewController:UIActivityViewContro

我在我的应用程序中添加了共享功能,以共享名称、价格、数量和描述等数据。我就是这样做到的

let prodObj = newProdDetails[indexPath.row]
let name = prodObj.name
let price = prodObj.mrp
let qty = prodObj.quantity
let description = prodObj.descriptions

let activityViewController:UIActivityViewController = UIActivityViewController(activityItems:  [name, price, qty, description], applicationActivities: nil)
self.present(activityViewController, animated: true, completion: nil)
当我在whatsapp中像这样分享时,接收者得到的只是像Box,6500(如果名称是Box,数量是6,价格是500)

但当我发送时,我希望接收方得到类似的信息

Name: Box

Quantity: 6

Price: 500
而不仅仅是盒子,6500


我如何实现这一点…?

发送活动项的字符串,如
“Name:\(Name)”


发送活动项的字符串,如“名称:\(名称)”


您可以这样尝试:

let prodObj = newProdDetails[indexPath.row]
let name = prodObj.name
let price = prodObj.mrp
let qty = prodObj.quantity
let description = prodObj.descriptions

let finalString:String = "Name:" + name + "\n" + "Quantity:" + qty + "\n" + "Price:" + price 

let activityViewController:UIActivityViewController = UIActivityViewController(activityItems:  [finalString], applicationActivities: nil)
结果:

Name: Box

Quantity: 6

Price: 500

测试100%工作

您可以这样尝试

let prodObj = newProdDetails[indexPath.row]
let name = prodObj.name
let price = prodObj.mrp
let qty = prodObj.quantity
let description = prodObj.descriptions

let finalString:String = "Name:" + name + "\n" + "Quantity:" + qty + "\n" + "Price:" + price 

let activityViewController:UIActivityViewController = UIActivityViewController(activityItems:  [finalString], applicationActivities: nil)
结果:

Name: Box

Quantity: 6

Price: 500
测试100%工作

您可以这样做

let share : String = "Name: \(name) \nQuantity: \(qty) \nPrice: \(price)" 

let activityViewController:UIActivityViewController = UIActivityViewController(activityItems:  [share], applicationActivities: nil)
你可以这样做

let share : String = "Name: \(name) \nQuantity: \(qty) \nPrice: \(price)" 

let activityViewController:UIActivityViewController = UIActivityViewController(activityItems:  [share], applicationActivities: nil)
只需运行代码:

    let name = "javed"
    let price = 700
    let qty = 77

    let finalString:String = "Name:" + name + "\n" + "Quantity:" + String(qty) + "\n" + "Price:" + String(price)
    print(finalString)
结果:

Name: Box

Quantity: 6

Price: 500

或者您已经有了字符串值:

Name: Box

Quantity: 6

Price: 500
只需运行以下代码:

    let name = "javed"
    let price = 700
    let qty = 77

    let finalString:String = "Name:" + name + "\n" + "Quantity:" + String(qty) + "\n" + "Price:" + String(price)
    print(finalString)
结果:

Name: Box

Quantity: 6

Price: 500

或者您已经有了字符串值:

Name: Box

Quantity: 6

Price: 500

发生的事情不是从中传递单个属性,如名称价格数量,而是从中创建一个字符串或字典数组(键值对,这样您就知道哪个值与哪个键关联),然后传递整个数组,您还可以检查值是否存在,然后只将其添加到最终数组中(根据您的要求)

此外,在使用前检查prodObj是否为nil,如果其为nill,则可以返回(根据您的要求)


还要理解为什么在从StackOverflow复制粘贴代码之前,因为这样可以节省您以后的时间,

发生的事情不是传递单独的属性,比如名称价格数量,而是使用创建字符串数组或字典(键值对,这样您就知道哪个值与哪个键关联)然后传递整个数组,您还可以检查值是否存在,然后仅将其添加到最终数组(根据您的要求)

此外,在使用前检查prodObj是否为nil,如果其为nill,则可以返回(根据您的要求)



也要理解为什么在从StackOverflow复制粘贴代码之前,因为这样可以节省您以后的时间,

这绝对有效,请让我知道结果是什么?它在let
finalString:String…
中给出了一个错误,因为
表达式太复杂,无法在合理的时间内解决;考虑将表达式分解为不同的子表达式< /代码>:如果要字符串级联<代码>“值:\(value)”<代码>优于<代码>值:+value
hey Total Solution这绝对有效让我知道结果是什么?它在let
finalString:String…
as
表达式太复杂,无法在合理的时间内解决;如果你想把表达式分解成不同的子表达式如果你想要字符串级联<代码>值:\(值)优于<代码>值:“+值嘿,必须解决这个问题。”埃姆雷·U.ZDIL,但是接收者以这种格式得到数据:价格:可选(“580”)虽然这本应该只是价格:580@D.M您可以通过
if let
guard let
检查可选控件的值Using if let给出此错误。
条件绑定的初始值设定项必须具有可选类型,而不是“NewProduct”
因此,名称、价格、数量和描述是prodObj的值;我们需要2个守卫控制它在@EmreÖzdil工作,初始答案是它必须像这样打开…
[“Name:\(Name!)”,…
这确实在@EmreÖzdil工作,但接收器以以下格式获取数据:价格:可选(“580”)虽然这本应该只是价格:580@D.M您可以通过
if-let
guard-let
检查可选控件的值Using if-let给出此错误。
条件绑定的初始值设定项必须具有可选类型,而不是“NewProduct”
名称、价格、数量和描述是prodObj的值,因此,我们需要2个guard-controlIt使用了@EmreÖzdil的初始答案,它只是需要像这样展开…
[“Name:\(Name!)”,…
仍然不起作用@Mr.Javed Multani。它显示相同的错误OK所以检查对象值。现在只需给出静态值并测试它。谢谢@D.Mstill不起作用@Mr.Javed Multani。它显示相同的错误OK所以检查对象值。现在只需给出静态值并测试它。谢谢@D.M